因为成环
所以可以枚举第1只与第n只喂的次数
然后第1只和第2只的次数就固定了,以此类推,则所有宝可梦喂的次数都固定了
最后处理完检查是否全为0,不是则进行下一次枚举,是则直接输出Yes
如果所有枚举均不成立,输出No
#include<bits/stdc++.h> using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0);cout.tie(0); int n,i,j,a[1005],d[1005]; bool pass; cin>>n; if(n<2){ cout<<"Yes "; return 0; } else if(n==2){ cin>>a[1]>>a[2]; if(a[1]!=a[2]) cout<<"No "; else cout<<"Yes "; return 0; } for(i=1;i<=n;i++) cin>>a[i]; for(j=0;j<=a[1];j++){//枚举第1只与第n只喂的次数 for(i=1;i<=n;i++) d[i]=a[i]; d[1]-=j; d[n]-=j; for(i=1;i<n;i++){ d[i+1]-=d[i]; d[i]=0; } pass=true; for(i=1;i<=n;i++) if(d[i]){ pass=false; break; } if(pass){ cout<<"Yes "; return 0; } } cout<<"No "; return 0; }