/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Wrong Answer 58ms 17.062 MiB
#2 Wrong Answer 63ms 16.789 MiB
#3 Wrong Answer 79ms 16.715 MiB
#4 Wrong Answer 77ms 16.754 MiB
#5 Wrong Answer 106ms 16.898 MiB
#6 Wrong Answer 81ms 16.859 MiB
#7 Wrong Answer 94ms 16.695 MiB
#8 Wrong Answer 113ms 16.781 MiB
#9 Wrong Answer 74ms 16.746 MiB
#10 Wrong Answer 71ms 16.957 MiB
#11 Wrong Answer 86ms 16.676 MiB
#12 Wrong Answer 70ms 16.906 MiB
#13 Wrong Answer 92ms 16.793 MiB
#14 Wrong Answer 76ms 16.707 MiB
#15 Wrong Answer 107ms 17.027 MiB
#16 Wrong Answer 135ms 17.074 MiB
#17 Wrong Answer 229ms 17.656 MiB
#18 Wrong Answer 74ms 16.77 MiB
#19 Wrong Answer 95ms 17.047 MiB
#20 Wrong Answer 92ms 16.914 MiB
#21 Wrong Answer 106ms 17.172 MiB
#22 Wrong Answer 97ms 16.895 MiB
#23 Wrong Answer 95ms 16.98 MiB
#24 Wrong Answer 97ms 17.027 MiB
#25 Wrong Answer 90ms 17.27 MiB
#26 Wrong Answer 102ms 17.012 MiB
#27 Wrong Answer 111ms 17.223 MiB
#28 Wrong Answer 107ms 17.102 MiB
#29 Wrong Answer 101ms 17.008 MiB
#30 Wrong Answer 140ms 17.535 MiB
#31 Wrong Answer 138ms 17.668 MiB
#32 Wrong Answer 85ms 17.008 MiB
#33 Wrong Answer 91ms 17.523 MiB
#34 Wrong Answer 90ms 17.125 MiB
#35 Wrong Answer 211ms 17.672 MiB

Code

/*
 *   Copyright (c) 2024 Emon Thakur
 *   All rights reserved.
 */
#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
using minheap = priority_queue<long long, vector<long long>, greater<long long>>;
typedef tree<int, null_type, greater_equal<int>, rb_tree_tag, tree_order_statistics_node_update> pbds; // find_by_order, order_of_key

#define ll long long
#define ld long double
#define MOD 1000000007
#define pie 2*(acos(0.0))
#define yes cout<<"YES\n"
#define no cout<<"NO\n"
#define pb push_back
#define endl '\n'
#define lcm(a,b) (a*b)/(__gcd<ll>(a,b))
#define print(v) for(auto e:v) cout<<e<<" "; cout<<endl;
#define printp(v) for(auto e:v) cout<<e.first<<" "<<e.second<<endl;
#define srt(v) sort(v.begin(),v.end())
#define rsrt(v) sort(v.rbegin(),v.rend())
#define life_is_a_race ios::sync_with_stdio(false); cin.tie(nullptr);

vector<vector<ll>> alldiv(100006);
void alldivisor()
{
    for(int i=1;i<=100000;i++) alldiv[i].push_back(1);
    for(int i=2;i<=100000;i++)
    {
        alldiv[i].push_back(i);
        for(int j=i+i;j<=100000;j+=i) alldiv[j].push_back(i);
    }
}

bool cmp(pair<ll,ll>&a,pair<ll,ll>&b) {return a>b;}

void solve(int tc)
{
    //cout<<"Case "<<tc<<": ";
    ll n; cin >> n;
    vector<ll> a(n);
    for(int i=0;i<n;i++) cin >> a[i];
    vector<ll> hash(100005);

    for(int i=0;i<n;i++)
    {
        for(auto e:alldiv[a[i]])
        {
            hash[e]++;
        }
    }

    vector<pair<ll,ll>> v;
    for(int i=1;i<=100000;i++)
    {
        if(hash[i] >= (n/2)) 
        {
            v.push_back({hash[i],i});
        }
    }

    sort(v.begin(),v.end(),cmp);
    printp(v);
    ll ans = 2;

    int m = v.size();
    for(int i=0;i<m;i++)
    {
        //cout << v[i].first <<" "<< v[i].second<<endl;
        //if(v[i].first < (n+1)/2) break;

        for(int j=i;j<m;j++)
        {
            //cout << v[j].first <<" "<<v[j].second<<endl;
            //if(v[j].first < n/2) break;
            ll lcmm = lcm(v[i].second,v[j].second);
            ll cnt;
            if(lcmm > 100000) cnt = 0;
            else cnt = hash[lcmm];

            if(v[i].first + v[j].first - cnt >= n) 
            {
                ans = max(ans , v[i].second + v[j].second);
            }
        }
    }

    cout << ans << endl;

    //for(int i=1;i<=10;i++) cout << i << " "<<hash[i]<<endl;
}
int main()
{
    //life_is_a_race
    alldivisor();
    
    int t=1; 
    cin>>t;
    for(int i=1;i<=t;i++) solve(i);
}

Information

Submit By
Type
Submission
Problem
P1077 Even Odd GCD (Hard Version)
Language
C++20 (G++ 13.2.0)
Submit At
2024-08-24 11:29:13
Judged At
2024-08-24 11:29:13
Judged By
Score
0
Total Time
229ms
Peak Memory
17.672 MiB