Submission #6699675
Source Code Expand
Copy
#pragma GCC optimize(2) #pragma GCC optimize(3) #include <bits/stdc++.h> #define int long long #define Fast_cin ios::sync_with_stdio(false), cin.tie(0); #define rep(i, a, b) for(register int i = a; i <= b; i++) #define per(i, a, b) for(register int i = a; i >= b; i--) using namespace std; typedef unsigned long long ull; typedef pair <int, int> pii; typedef long long ll; template <typename _T> inline void read(_T &f) { f = 0; _T fu = 1; char c = getchar(); while(c < '0' || c > '9') { if(c == '-') fu = -1; c = getchar(); } while(c >= '0' && c <= '9') { f = (f << 3) + (f << 1) + (c & 15); c = getchar(); } f *= fu; } template <typename T> void print(T x) { if(x < 0) putchar('-'), x = -x; if(x < 10) putchar(x + 48); else print(x / 10), putchar(x % 10 + 48); } template <typename T> void print(T x, char t) { print(x); putchar(t); } template <typename T> struct hash_map_t { vector <T> v, val, nxt; vector <int> head; int mod, tot, lastv; T lastans; bool have_ans; hash_map_t (int md = 0) { head.clear(); v.clear(); val.clear(); nxt.clear(); tot = 0; mod = md; nxt.resize(1); v.resize(1); val.resize(1); head.resize(mod); have_ans = 0; } void clear() { *this = hash_map_t(mod); } bool count(int x) { int u = x % mod; for(register int i = head[u]; i; i = nxt[i]) { if(v[i] == x) { have_ans = 1; lastv = x; lastans = val[i]; return 1; } } return 0; } void ins(int x, int y) { int u = x % mod; nxt.push_back(head[u]); head[u] = ++tot; v.push_back(x); val.push_back(y); } int qry(int x) { if(have_ans && lastv == x) return lastans; count(x); return lastans; } }; const int N = 505; int a[N], b[N], l[N], r[N]; int n, k, sum, ans; void solve(int x) { if(x < ans) return; for(register int i = 1; i <= n; i++) b[i] = a[i] % x; sort(b + 1, b + n + 1); for(register int i = 1; i <= n; i++) l[i] = l[i - 1] + b[i]; for(register int i = n; i >= 1; i--) r[i] = r[i + 1] + (b[i] == 0 ? 0 : (x - b[i])); if(l[n] == 0) { ans = x; return; } for(register int i = 1; i < n; i++) { if(l[i] >= r[i + 1] && l[i] <= k) { ans = x; return; } } } signed main() { read(n); read(k); for(register int i = 1; i <= n; i++) read(a[i]), sum += a[i]; for(register int i = 1; i * i <= sum; i++) { if(sum % i == 0) { solve(i); solve(sum / i); } } print(ans, '\n'); return 0; }
Submission Info
Submission Time | |
---|---|
Task | E - Max GCD |
User | LJC00118 |
Language | C++14 (GCC 5.4.1) |
Score | 500 |
Code Size | 2768 Byte |
Status | AC |
Exec Time | 23 ms |
Memory | 256 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 500 / 500 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | s1.txt, s2.txt, s3.txt, s4.txt |
All | 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 40.txt, 41.txt, 42.txt, 43.txt, 44.txt, 45.txt, 46.txt, 47.txt, 48.txt, 49.txt, 50.txt, 51.txt, 52.txt, 53.txt, 54.txt, 55.txt, 56.txt, 57.txt, 58.txt, 59.txt, 60.txt, 61.txt, 62.txt, 63.txt, 64.txt, 65.txt, 66.txt, 67.txt, 68.txt, 69.txt, 70.txt, 71.txt, 72.txt, 73.txt, 74.txt, 75.txt, 76.txt, 77.txt, 78.txt, 79.txt, 80.txt, s1.txt, s2.txt, s3.txt, s4.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
01.txt | AC | 1 ms | 256 KB |
02.txt | AC | 1 ms | 256 KB |
03.txt | AC | 1 ms | 256 KB |
04.txt | AC | 1 ms | 256 KB |
05.txt | AC | 1 ms | 256 KB |
06.txt | AC | 1 ms | 256 KB |
07.txt | AC | 1 ms | 256 KB |
08.txt | AC | 1 ms | 256 KB |
09.txt | AC | 1 ms | 256 KB |
10.txt | AC | 1 ms | 256 KB |
11.txt | AC | 1 ms | 256 KB |
12.txt | AC | 1 ms | 256 KB |
13.txt | AC | 2 ms | 256 KB |
14.txt | AC | 2 ms | 256 KB |
15.txt | AC | 1 ms | 256 KB |
16.txt | AC | 1 ms | 256 KB |
17.txt | AC | 2 ms | 256 KB |
18.txt | AC | 2 ms | 256 KB |
19.txt | AC | 1 ms | 256 KB |
20.txt | AC | 2 ms | 256 KB |
21.txt | AC | 1 ms | 256 KB |
22.txt | AC | 2 ms | 256 KB |
23.txt | AC | 2 ms | 256 KB |
24.txt | AC | 2 ms | 256 KB |
25.txt | AC | 2 ms | 256 KB |
26.txt | AC | 2 ms | 256 KB |
27.txt | AC | 2 ms | 256 KB |
28.txt | AC | 2 ms | 256 KB |
29.txt | AC | 2 ms | 256 KB |
30.txt | AC | 3 ms | 256 KB |
31.txt | AC | 2 ms | 256 KB |
32.txt | AC | 2 ms | 256 KB |
33.txt | AC | 1 ms | 256 KB |
34.txt | AC | 2 ms | 256 KB |
35.txt | AC | 1 ms | 256 KB |
36.txt | AC | 2 ms | 256 KB |
37.txt | AC | 3 ms | 256 KB |
38.txt | AC | 1 ms | 256 KB |
39.txt | AC | 1 ms | 256 KB |
40.txt | AC | 2 ms | 256 KB |
41.txt | AC | 2 ms | 256 KB |
42.txt | AC | 1 ms | 256 KB |
43.txt | AC | 2 ms | 256 KB |
44.txt | AC | 2 ms | 256 KB |
45.txt | AC | 1 ms | 256 KB |
46.txt | AC | 1 ms | 256 KB |
47.txt | AC | 1 ms | 256 KB |
48.txt | AC | 1 ms | 256 KB |
49.txt | AC | 1 ms | 256 KB |
50.txt | AC | 1 ms | 256 KB |
51.txt | AC | 1 ms | 256 KB |
52.txt | AC | 1 ms | 256 KB |
53.txt | AC | 1 ms | 256 KB |
54.txt | AC | 1 ms | 256 KB |
55.txt | AC | 1 ms | 256 KB |
56.txt | AC | 1 ms | 256 KB |
57.txt | AC | 2 ms | 256 KB |
58.txt | AC | 2 ms | 256 KB |
59.txt | AC | 2 ms | 256 KB |
60.txt | AC | 4 ms | 256 KB |
61.txt | AC | 2 ms | 256 KB |
62.txt | AC | 2 ms | 256 KB |
63.txt | AC | 2 ms | 256 KB |
64.txt | AC | 2 ms | 256 KB |
65.txt | AC | 2 ms | 256 KB |
66.txt | AC | 1 ms | 256 KB |
67.txt | AC | 2 ms | 256 KB |
68.txt | AC | 2 ms | 256 KB |
69.txt | AC | 2 ms | 256 KB |
70.txt | AC | 2 ms | 256 KB |
71.txt | AC | 2 ms | 256 KB |
72.txt | AC | 2 ms | 256 KB |
73.txt | AC | 2 ms | 256 KB |
74.txt | AC | 2 ms | 256 KB |
75.txt | AC | 2 ms | 256 KB |
76.txt | AC | 22 ms | 256 KB |
77.txt | AC | 23 ms | 256 KB |
78.txt | AC | 14 ms | 256 KB |
79.txt | AC | 22 ms | 256 KB |
80.txt | AC | 20 ms | 256 KB |
s1.txt | AC | 1 ms | 256 KB |
s2.txt | AC | 1 ms | 256 KB |
s3.txt | AC | 1 ms | 256 KB |
s4.txt | AC | 1 ms | 256 KB |