Submission #1092488
Source Code Expand
#ifdef DEBUG #define _GLIBCXX_DEBUG #endif #include <bits/stdc++.h> using namespace std; typedef long double ld; typedef long long ll; #ifdef DEBUG #define eprintf(...) fprintf(stderr, __VA_ARGS__), fflush(stderr) #else #define eprintf(...) ; #endif #define pb push_back #define mp make_pair #define sz(x) ((int) (x).size()) #define TASK "text" const int inf = (int) 1.01e9; const ld eps = 1e-9; const ld pi = acos((ld) -1); mt19937 mrand(random_device{} ()); int rnd(int x) { return mrand() % x; } void precalc() { } const int maxn = (int) 1e5 + 5; int n; int a[maxn]; int read() { if (scanf("%d", &n) < 1) { return false; } for (int i = 0; i < n; i++) { scanf("%d", &a[i]); } return true; } long long k[maxn]; void solve() { long long sum = 0; for (int i = 0; i < n; i++) { sum += a[i]; } long long one = (long long) n * (n + 1) / 2; if (sum % one) { printf("NO\n"); return; } long long s = sum / one; a[n] = a[0]; for (int i = 0; i < n; i++) { int d = a[i + 1] - a[i]; if (s < d || (s - d) % n) { printf("NO\n"); return; } k[i + 1] = (s - d) / n; } k[0] = k[n]; long long sk = 0; for (int i = 0; i < n; i++) { sk += k[i]; } if (sk != s) { printf("NO\n"); return; } long long a0 = k[0]; for (int i = 1; i < n; i++) { a0 += (long long) (n - i + 1) * k[i]; if (a0 > a[0]) { printf("NO\n"); return; } } if (a0 != a[0]) { printf("NO\n"); return; } printf("YES\n"); } int main() { precalc(); #ifdef LOCAL assert(freopen(TASK ".in", "r", stdin)); assert(freopen(TASK ".out", "w", stdout)); #endif while (true) { if (!read()) { break; } solve(); #ifdef DEBUG eprintf("Time %.2f\n", (double) clock() / CLOCKS_PER_SEC); #endif } return 0; }
Submission Info
Submission Time | |
---|---|
Task | B - Boxes |
User | aid |
Language | C++14 (GCC 5.4.1) |
Score | 500 |
Code Size | 1876 Byte |
Status | AC |
Exec Time | 17 ms |
Memory | 1408 KB |
Compile Error
./Main.cpp: In function ‘int read()’: ./Main.cpp:45:22: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &a[i]); ^
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 500 / 500 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample1.txt, sample2.txt, sample3.txt |
All | sample1.txt, sample2.txt, sample3.txt, in1.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in2.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in3.txt, in4.txt, in5.txt, in6.txt, in7.txt, in8.txt, in9.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
in1.txt | AC | 15 ms | 1408 KB |
in10.txt | AC | 4 ms | 256 KB |
in11.txt | AC | 14 ms | 640 KB |
in12.txt | AC | 14 ms | 640 KB |
in13.txt | AC | 12 ms | 640 KB |
in14.txt | AC | 3 ms | 256 KB |
in15.txt | AC | 3 ms | 256 KB |
in16.txt | AC | 3 ms | 256 KB |
in17.txt | AC | 3 ms | 256 KB |
in18.txt | AC | 3 ms | 256 KB |
in19.txt | AC | 3 ms | 256 KB |
in2.txt | AC | 17 ms | 1408 KB |
in20.txt | AC | 3 ms | 256 KB |
in21.txt | AC | 14 ms | 640 KB |
in22.txt | AC | 14 ms | 640 KB |
in23.txt | AC | 14 ms | 640 KB |
in24.txt | AC | 3 ms | 256 KB |
in25.txt | AC | 4 ms | 256 KB |
in26.txt | AC | 14 ms | 640 KB |
in27.txt | AC | 14 ms | 640 KB |
in3.txt | AC | 17 ms | 1408 KB |
in4.txt | AC | 17 ms | 1408 KB |
in5.txt | AC | 17 ms | 1408 KB |
in6.txt | AC | 14 ms | 640 KB |
in7.txt | AC | 14 ms | 640 KB |
in8.txt | AC | 4 ms | 256 KB |
in9.txt | AC | 4 ms | 256 KB |
sample1.txt | AC | 3 ms | 256 KB |
sample2.txt | AC | 3 ms | 256 KB |
sample3.txt | AC | 3 ms | 256 KB |