ZJNU 2135 - 小智的宝可梦

因为成环

所以可以枚举第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\n";
        return 0;
    }
    else if(n==2){
        cin>>a[1]>>a[2];
        if(a[1]!=a[2])
            cout<<"No\n";
        else
            cout<<"Yes\n";
        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\n";
            return 0;
        }
    }
    cout<<"No\n";
    
    return 0;
}

 

posted @ 2020-01-27 16:41  StelaYuri  阅读(153)  评论(0)    收藏  举报