Short and Simple code works can't understand why ??

Revision en1, by vedantsharma2508, 2024-07-29 10:40:33

The problem statement here is https://codeforces.com/contest/1535/problem/B

#include<bits/stdc++.h>
using namespace std;

int main() {
    int t;
    cin >> t;
    while (t--) {
        int n;
        int ans = 0;
        cin >> n;
        int a[n+5];
        for (int i = 1; i <= n; i++) {
            cin >> a[i];
        }

        for (int i = 1; i <= n; i++) {
            for (int j = i+1; j <= n; j++) {
                if (__gcd(a[i], a[j]*2) + __gcd(a[i]*2, a[j]) > 2) ans++;
            }
        }
        cout << ans << endl;
    }
    return 0;
}

I can't understand why this is an accepted solution.

Even when here we are counting two times 1) gcd(2*a[j],a[i]) 2) gcd(2*a[i],a[j])

Answer should have been something else.

In other words what is the need to see the two times the gcd ??

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en1 English vedantsharma2508 2024-07-29 10:40:33 916 Initial revision (published)