### orz's blog

By orz, history, 3 weeks ago,

I have recorded a screencast & editorial for Codeforces Round 947 (Div. 1 + Div. 2). It will upload on https://youtu.be/DrBmSO86xUQ in an hour or two.

• +30

 » 3 weeks ago, # |   +9 You should add "screencast" to the title so that it differs from the announcement title.
•  » » 3 weeks ago, # ^ |   +12 Thank you!
 » 3 weeks ago, # |   0 Auto comment: topic has been updated by orz (previous revision, new revision, compare).
»
3 weeks ago, # |
-16

I guess there is some issue in judgement of question B

Below are the two solutions , both are accepted

but both are giving diffrent answers on this test case

n = 4

arr = [4 , 8 , 20 , 10] answer should be yes

this is the first solution( giving YES for the above test case)

# include<bits/stdc++.h>

using namespace std;

int main() { int tt; cin >> tt; for(int t = 0; t < tt; t++ ) { int n; cin >> n; int a[n]; set s; for(int i=0; i<n; i++) { cin>>a[i]; s.insert(a[i]); } sort(a,a+n);

if(*s.begin() == 1 || s.size() == 1 ) {
cout << "YES" << endl;
}
else {
int a1 = *s.begin();
int a2 = *(++s.begin());

for(int i=0; i<n; i++) {
if( a[i] % a[0] != 0 ) {
a2 = a[i];
break;
}
// if( __gcd(a[i] , a[0]) == 1 ) {
//     a2 = a[i];
//     break;
// }
}

// cout << a1 << " " << a2 << endl;

bool flag = 1;
for(int i=0; i<n; i++ ) {
if( (a[i]%a1 != 0) && (a[i]%a2 != 0) ) {
flag = 0;
break;
}
}

if( flag ) cout << "YES" << endl;
else cout << "NO" << endl;
}
}

}

Below is the second one (giving NO for the above test case)

# include<bits/stdc++.h>

using namespace std;

int main() { int tt; cin >> tt; for(int t = 0; t < tt; t++ ) { int n; cin >> n; int a[n]; sets; for(int i=0; i<n; i++) { cin>>a[i]; s.insert(a[i]); } sort(a,a+n);

if(*s.begin() == 1 || s.size() == 1 ) {
cout << "YES" << endl;
}
else {
int a1 = *s.begin();
int a2 = *(++s.begin());

for(int i=0; i<n; i++) {
// if( a[i] % a[0] != 0 ) {
//     a2 = a[i];
//     break;
// }
if( __gcd(a[i] , a[0]) == 1 ) {
a2 = a[i];
break;
}
}

// cout << a1 << " " << a2 << endl;

bool flag = 1;
for(int i=0; i<n; i++ ) {
if( (a[i]%a1 != 0) && (a[i]%a2 != 0) ) {
flag = 0;
break;
}
}

if( flag ) cout << "YES" << endl;
else cout << "NO" << endl;
}
}

}

why both are accepting

•  » » 3 weeks ago, # ^ |   0 Please send both solutions to the problem and hack one of them using the corresponding interface.
 » 3 weeks ago, # |   0 Auto comment: topic has been updated by orz (previous revision, new revision, compare).