萌樱花是一只单身狗。
萌樱花今天初始化了N个数字,使它们都为0 0 0 0...
萌樱花决定选取某一个位置,分别增加1到N(如果到达数组末尾就从头开始)。
比如:
0 0 0(选择第二个位置开始)
3 1 2(选择第三个位置开始)
5 4 3(选择第 X 个位置开始)
.......
萌樱花因为单身,所以老是忘记自己做过什么。他现在忘记了这些数字是不是经过上面操作得到的。
如果可以通过这种操作得到,输出 YES,否则输出 NO
标签:int 大学 ret ++ its include for 今天 输出
萌樱花是一只单身狗。
萌樱花今天初始化了N个数字,使它们都为0 0 0 0...
萌樱花决定选取某一个位置,分别增加1到N(如果到达数组末尾就从头开始)。
比如:
0 0 0(选择第二个位置开始)
3 1 2(选择第三个位置开始)
5 4 3(选择第 X 个位置开始)
.......
萌樱花因为单身,所以老是忘记自己做过什么。他现在忘记了这些数字是不是经过上面操作得到的。
如果可以通过这种操作得到,输出 YES,否则输出 NO
N<=105
Ai<=109
输入格式:
N
A1 A2 A3 .....AN
符合操作输出YES,否则输出NO
3
5 4 3
YES
见题目描述
#include<bits/stdc++.h> using namespace std; #define ll long long ll a[200000]; ll d[200000]; int main() { ll n; ll sum=0; cin>>n; for(int i=0;i<n;i++) { cin>>a[i]; sum+=a[i]; } for(int i=0;i<n-1;i++) { d[i]=a[i+1]-a[i]; } d[n-1]=a[0]-a[n-1]; if(sum%(n*(n+1)/2)==0) { ll k=sum/(n*(n+1)/2); for(int i=0;i<n;i++) { if((k-(d[i]))%n||k-d[i]<0) { cout<<"NO"<<endl; return 0; } } cout<<"YES"<<endl; } else { cout<<"NO"<<endl; } }
标签:int 大学 ret ++ its include for 今天 输出
原文地址:https://www.cnblogs.com/yinghualuowu/p/9494678.html