orz's blog

By orz, history, 3 weeks ago, In English

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.

UPD: the video is uploaded.

  • Vote: I like it
  • +30
  • Vote: I do not like it

»
3 weeks ago, # |
  Vote: I like it +9 Vote: I do not like it

You should add "screencast" to the title so that it differs from the announcement title.

»
3 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by orz (previous revision, new revision, compare).

»
3 weeks ago, # |
  Vote: I like it -16 Vote: I do not like it

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, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Please send both solutions to the problem and hack one of them using the corresponding interface.

»
3 weeks ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by orz (previous revision, new revision, compare).