Submission #6029907
Source Code Expand
// {{{
#include <algorithm>
#include <array>
#include <bitset>
#include <cassert>
#include <cmath>
#include <cstdio>
#include <iostream>
#include <iterator>
#include <list>
#include <map>
#include <numeric>
#include <queue>
#include <random>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <tuple>
#include <utility>
#include <vector>
// }}}
using namespace std;
using ll = long long;
using ull = unsigned long long;
using ld = long double;
static constexpr int mod = (int)1e9 + 7;
static constexpr int inf = 100100100;
static constexpr ll linf = 1e18;
static constexpr double eps = 1e-9;
static constexpr double pi = 3.14159265359;
#define rep(i, n) for (ll i = 0; i < n; ++i)
#define rrep(i, n) for (ll i = n; i >= 0; --i)
#define all(c) begin(c), end(c)
#define rall(c) rbegin(c), rend(c)
#define pb push_back
#define ist insert
#define fst first
#define snd second
template <typename T>
T gcd(T a, T b) {
while (b != 0) {
T c = a;
a = b;
b = c % b;
}
return a;
}
template <typename T>
vector<T> prime_factorize(T num) {
assert(num > 1);
vector<T> factor;
T n = sqrt(num) + 1;
for (T i = 2; i < n; ++i) {
while (num % i == 0) {
num /= i;
factor.push_back(i);
}
}
if (num > 1) {
factor.push_back(num);
}
return factor;
}
map<ll, vector<ll>> cache;
map<ll, vector<ll>> F;
int main() {
// cin.tie(0);
// ios_base::sync_with_stdio(false);
ll N;
cin >> N;
vector<ll> A;
rep (i, N) {
ll a;
cin >> a;
A.pb(a);
}
for (ll a : A) {
if (a > 1) {
if (!cache.count(a)) {
cache[a] = prime_factorize(a);
}
for (ll p : cache[a]) {
F[p].pb(a);
}
}
F[1].pb(a);
}
ll ans = 1;
for (auto f : F) {
if (f.snd.size() >= A.size() - 1) {
ll g = f.snd[0];
for (ll x : f.snd) {
g = gcd(g, x);
}
ans = max(ans, g);
}
}
cout << ans << endl;
}
Submission Info
| Submission Time | |
|---|---|
| Task | C - GCD on Blackboard |
| User | gochiusa |
| Language | C++14 (Clang 3.8.0) |
| Score | 300 |
| Code Size | 2240 Byte |
| Status | AC |
| Exec Time | 156 ms |
| Memory | 25312 KiB |
Judge Result
| Set Name | All | Sample | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 300 / 300 | 0 / 0 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| All | sample_01, sample_02, sample_03, testcase_01, testcase_02, testcase_03, testcase_04, testcase_05, testcase_06, testcase_07, testcase_08, testcase_09, testcase_10, testcase_11, testcase_12, testcase_13 |
| Sample | sample_01, sample_02, sample_03 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| sample_01 | AC | 3 ms | 504 KiB |
| sample_02 | AC | 1 ms | 256 KiB |
| sample_03 | AC | 2 ms | 256 KiB |
| testcase_01 | AC | 78 ms | 5364 KiB |
| testcase_02 | AC | 129 ms | 7152 KiB |
| testcase_03 | AC | 2 ms | 256 KiB |
| testcase_04 | AC | 156 ms | 25312 KiB |
| testcase_05 | AC | 50 ms | 2676 KiB |
| testcase_06 | AC | 115 ms | 5492 KiB |
| testcase_07 | AC | 1 ms | 256 KiB |
| testcase_08 | AC | 1 ms | 256 KiB |
| testcase_09 | AC | 101 ms | 7796 KiB |
| testcase_10 | AC | 113 ms | 9076 KiB |
| testcase_11 | AC | 108 ms | 7796 KiB |
| testcase_12 | AC | 7 ms | 1180 KiB |
| testcase_13 | AC | 1 ms | 256 KiB |