-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path2117d.cpp
More file actions
39 lines (34 loc) · 740 Bytes
/
2117d.cpp
File metadata and controls
39 lines (34 loc) · 740 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <bits/stdc++.h>
using namespace std;
#define NO cout<<"NO\n"
#define YES cout<<"YES\n"
#define F first
#define S second
#define cases int _; cin >> _; while(_--)
typedef long long ll;
typedef unsigned long long ull;
typedef vector<int> vi;
typedef pair<int, int> pi;
typedef set<int> si;
void solve() {
int a; cin >> a;
vi A(a); for(int i = 0; i < a; i++) cin >> A[i];
ll y = (2 * A[0] - A[1]) / (a + 1);
ll x = A[1] - A[0] + y;
if(y < 0 || x < 0) {
NO;
return;
}
for(int i = 0; i < a; i++) {
A[i] -= x * (i + 1);
A[i] -= y * (a - i);
}
if(count(A.begin(), A.end(), 0) == a) YES;
else NO;
}
int main() {
cases {
solve();
}
return 0;
}