Submission #6789081
Source Code Expand
#include <bits/stdc++.h>
#define rep(i, a, b) for (ll i = (a); i < (b); i++)
typedef uint64_t ull;
typedef int64_t ll;
typedef std::pair<ll, ll> PLL;
using namespace std;
signed main() {
ll N, K, s=0;
cin>>N>>K;
vector<ll> a(N);
rep(i,0,N){
cin>>a[i];
s+=a[i];
}
// 約数一覧
set<ll> divisors;
for (ll i=1; i*i<=s; i++) {
if (s%i == 0) {
divisors.insert(i);
divisors.insert(s/i);
}
}
ll ans = -1;
for (auto d: divisors) {
vector<ll> x(N);
vector<ll> psum1(N+2, 0); // psum1[i]: i番目までのあまりの総和
vector<ll> psum2(N+2, 0); // psum2[i]: i番目以降のあまりの総和
rep(i,0,N){
x[i] = a[i] % d;
}
sort(begin(x),end(x));
rep(i,1,N+1){
psum1[i] = psum1[i-1] + x[i-1];
}
for (int i=N; i>=1; i--){
psum2[i] = psum2[i+1] + x[i-1];
}
rep(i,0,N+1){
// [0 i] を -1
// [i+1 N+1]を1
// if (d==7) {
// printf("psum1[%d]=%d\n", i, psum1[i]);
// printf("psum2[%d]=%d\n", i+1, psum2[i+1]);
// printf("d*(%d) - psum2[%d]=%d\n", N-i, i+1, d*(N-i+1) - psum2[i+1]);
// cout<<endl;
// }
if (max(psum1[i], d*(N-i) - psum2[i+1]) <= K) {
ans=max(ans,d);
}
}
}
cout<<ans<<endl;
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | E - Max GCD |
| User | bobuhiro11 |
| Language | C++14 (GCC 5.4.1) |
| Score | 500 |
| Code Size | 1360 Byte |
| Status | AC |
| Exec Time | 26 ms |
| Memory | 256 KiB |
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 KiB |
| 02.txt | AC | 3 ms | 256 KiB |
| 03.txt | AC | 1 ms | 256 KiB |
| 04.txt | AC | 1 ms | 256 KiB |
| 05.txt | AC | 1 ms | 256 KiB |
| 06.txt | AC | 1 ms | 256 KiB |
| 07.txt | AC | 1 ms | 256 KiB |
| 08.txt | AC | 1 ms | 256 KiB |
| 09.txt | AC | 1 ms | 256 KiB |
| 10.txt | AC | 1 ms | 256 KiB |
| 11.txt | AC | 1 ms | 256 KiB |
| 12.txt | AC | 1 ms | 256 KiB |
| 13.txt | AC | 2 ms | 256 KiB |
| 14.txt | AC | 2 ms | 256 KiB |
| 15.txt | AC | 1 ms | 256 KiB |
| 16.txt | AC | 1 ms | 256 KiB |
| 17.txt | AC | 2 ms | 256 KiB |
| 18.txt | AC | 2 ms | 256 KiB |
| 19.txt | AC | 2 ms | 256 KiB |
| 20.txt | AC | 2 ms | 256 KiB |
| 21.txt | AC | 5 ms | 256 KiB |
| 22.txt | AC | 4 ms | 256 KiB |
| 23.txt | AC | 3 ms | 256 KiB |
| 24.txt | AC | 2 ms | 256 KiB |
| 25.txt | AC | 3 ms | 256 KiB |
| 26.txt | AC | 2 ms | 256 KiB |
| 27.txt | AC | 2 ms | 256 KiB |
| 28.txt | AC | 3 ms | 256 KiB |
| 29.txt | AC | 3 ms | 256 KiB |
| 30.txt | AC | 6 ms | 256 KiB |
| 31.txt | AC | 3 ms | 256 KiB |
| 32.txt | AC | 3 ms | 256 KiB |
| 33.txt | AC | 4 ms | 256 KiB |
| 34.txt | AC | 4 ms | 256 KiB |
| 35.txt | AC | 2 ms | 256 KiB |
| 36.txt | AC | 4 ms | 256 KiB |
| 37.txt | AC | 5 ms | 256 KiB |
| 38.txt | AC | 2 ms | 256 KiB |
| 39.txt | AC | 2 ms | 256 KiB |
| 40.txt | AC | 3 ms | 256 KiB |
| 41.txt | AC | 5 ms | 256 KiB |
| 42.txt | AC | 4 ms | 256 KiB |
| 43.txt | AC | 2 ms | 256 KiB |
| 44.txt | AC | 3 ms | 256 KiB |
| 45.txt | AC | 2 ms | 256 KiB |
| 46.txt | AC | 2 ms | 256 KiB |
| 47.txt | AC | 2 ms | 256 KiB |
| 48.txt | AC | 2 ms | 256 KiB |
| 49.txt | AC | 2 ms | 256 KiB |
| 50.txt | AC | 2 ms | 256 KiB |
| 51.txt | AC | 2 ms | 256 KiB |
| 52.txt | AC | 2 ms | 256 KiB |
| 53.txt | AC | 2 ms | 256 KiB |
| 54.txt | AC | 2 ms | 256 KiB |
| 55.txt | AC | 2 ms | 256 KiB |
| 56.txt | AC | 2 ms | 256 KiB |
| 57.txt | AC | 3 ms | 256 KiB |
| 58.txt | AC | 2 ms | 256 KiB |
| 59.txt | AC | 2 ms | 256 KiB |
| 60.txt | AC | 4 ms | 256 KiB |
| 61.txt | AC | 2 ms | 256 KiB |
| 62.txt | AC | 2 ms | 256 KiB |
| 63.txt | AC | 2 ms | 256 KiB |
| 64.txt | AC | 2 ms | 256 KiB |
| 65.txt | AC | 2 ms | 256 KiB |
| 66.txt | AC | 2 ms | 256 KiB |
| 67.txt | AC | 2 ms | 256 KiB |
| 68.txt | AC | 3 ms | 256 KiB |
| 69.txt | AC | 2 ms | 256 KiB |
| 70.txt | AC | 2 ms | 256 KiB |
| 71.txt | AC | 2 ms | 256 KiB |
| 72.txt | AC | 2 ms | 256 KiB |
| 73.txt | AC | 2 ms | 256 KiB |
| 74.txt | AC | 2 ms | 256 KiB |
| 75.txt | AC | 2 ms | 256 KiB |
| 76.txt | AC | 25 ms | 256 KiB |
| 77.txt | AC | 26 ms | 256 KiB |
| 78.txt | AC | 17 ms | 256 KiB |
| 79.txt | AC | 25 ms | 256 KiB |
| 80.txt | AC | 23 ms | 256 KiB |
| s1.txt | AC | 1 ms | 256 KiB |
| s2.txt | AC | 1 ms | 256 KiB |
| s3.txt | AC | 1 ms | 256 KiB |
| s4.txt | AC | 1 ms | 256 KiB |