/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Wrong Answer 1ms 344.0 KiB
#2 Wrong Answer 3ms 836.0 KiB

Code

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

int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int T; 
    cin >> T;
    while(T--){
        int N;
        cin >> N;
        vector<int> A(N), freq;
        int maxA=0;
        for(int i=0;i<N;i++){
            cin>>A[i];
            maxA=max(maxA,A[i]);
        }
        freq.assign(maxA+1,0);
        for(int x:A) freq[x]++;

        // build cnt[d] = # of A[i] divisible by d
        vector<int> cnt(maxA+1,0);
        for(int d=1; d<=maxA; d++){
            for(int m=d; m<=maxA; m+=d)
                cnt[d] += freq[m];
        }

        int kodd  = (N+1)/2;
        int keven = N/2;

        vector<int> Xs, Ys;
        for(int d=1; d<=maxA; d++){
            if(cnt[d]>=kodd)  Xs.push_back(d);
            if(cnt[d]>=keven) Ys.push_back(d);
        }

        ll best = 0;
        // try all pairs
        for(int X: Xs) {
            for(int Y: Ys) {
                ll L = lcm<ll>((ll)X,(ll)Y);
                if(L>maxA) continue;               // no elements divisible by L
                int cXY = cnt[X] + cnt[Y] - cnt[L];
                if(cXY==N) best = max(best, (ll)X + Y);
            }
        }
        cout<<best<<"\n";
    }
    return 0;
}

Information

Submit By
Type
Submission
Problem
P1077 Even Odd GCD (Hard Version)
Language
C++17 (G++ 13.2.0)
Submit At
2025-05-24 10:22:14
Judged At
2025-05-24 10:22:14
Judged By
Score
0
Total Time
3ms
Peak Memory
836.0 KiB