/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 2ms 532.0 KiB
#3 Accepted 3ms 532.0 KiB
#4 Accepted 3ms 532.0 KiB
#5 Accepted 4ms 580.0 KiB
#6 Accepted 6ms 576.0 KiB
#7 Accepted 7ms 596.0 KiB
#8 Accepted 8ms 576.0 KiB
#9 Accepted 10ms 532.0 KiB
#10 Accepted 12ms 532.0 KiB
#11 Accepted 14ms 532.0 KiB
#12 Accepted 12ms 532.0 KiB
#13 Accepted 10ms 532.0 KiB
#14 Accepted 10ms 576.0 KiB
#15 Accepted 10ms 532.0 KiB
#16 Accepted 12ms 532.0 KiB
#17 Accepted 10ms 532.0 KiB
#18 Accepted 9ms 532.0 KiB
#19 Accepted 9ms 532.0 KiB

Code

#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
#include <bits/stdc++.h>

#ifdef LOCAL
#include "template.cpp.h"
#else
#define debug(...)
#endif

//#define int long long
using namespace std;
#define cinv(v) for (auto &it:v) cin>>it;
#define coutv(v) for (auto &it:v) cout<< it<<' '; cout<<'\n';

const int N = 101;
int cnt[N], lcm_[N][N];

void shelby() {
    int n;
    cin >> n;
    for (int i = 1; i <= n; ++i) {
        int x;
        cin >> x;
        for (int j = 1; j * j <= x; ++j) {
            if (x % j == 0) {
                cnt[j]++;
                if (j != x / j) cnt[x / j]++;
            }
        }
    }
    int ans = 0;
    for (int i = 1; i < N; ++i) {
        for (int j = i; j < N; ++j) {
            if (i == j) {
                if (cnt[i] == n) ans = max(ans, 2 * i);
                continue;
            }
            int a = cnt[i], b = cnt[j], l = lcm_[i][j], c = (l < N ? cnt[l] : 0);
            if (a < b) swap(a, b);
            int extra = a - n / 2 - (n % 2);
            c -= extra;
            if (extra < 0 || c < 0) continue;
            b -= c;
            if (b == n / 2) ans = max(ans, i + j);
        }
    }
    cout << ans << '\n';
    for (int i = 1; i < N; ++i) cnt[i] = 0;
}

signed main() {
    cin.tie(0)->ios_base::sync_with_stdio(0);
    for (int i = 1; i < N; ++i) {
        for (int j = i; j < N; ++j) lcm_[i][j] = lcm(i, j);
    }
    int t = 1;
    cin >> t;
    for (int _ = 1; _ <= t; ++_) {
//        cout << "Case " << _ << ": ";
        shelby();
    }
}

Information

Submit By
Type
Submission
Problem
P1076 Even Odd GCD (Easy Version)
Language
C++20 (G++ 13.2.0)
Submit At
2024-08-17 00:37:53
Judged At
2024-08-17 00:37:53
Judged By
Score
100
Total Time
14ms
Peak Memory
596.0 KiB