結果

問題 No.1990 Candy Boxes
ユーザー RubikunRubikun
提出日時 2024-07-20 19:36:52
言語 C++17
(gcc 12.3.0 + boost 1.83.0)
結果
WA  
実行時間 -
コード長 3,130 bytes
コンパイル時間 2,806 ms
コンパイル使用メモリ 206,444 KB
実行使用メモリ 7,956 KB
最終ジャッジ日時 2024-07-20 19:36:59
合計ジャッジ時間 5,950 ms
ジャッジサーバーID
(参考情報)
judge4 / judge5
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
5,248 KB
testcase_01 AC 2 ms
5,376 KB
testcase_02 AC 2 ms
5,376 KB
testcase_03 AC 2 ms
5,376 KB
testcase_04 AC 2 ms
5,376 KB
testcase_05 AC 2 ms
5,376 KB
testcase_06 AC 2 ms
5,248 KB
testcase_07 AC 3 ms
5,376 KB
testcase_08 AC 2 ms
5,376 KB
testcase_09 AC 2 ms
5,376 KB
testcase_10 AC 4 ms
5,376 KB
testcase_11 AC 2 ms
5,376 KB
testcase_12 AC 20 ms
5,376 KB
testcase_13 AC 20 ms
5,376 KB
testcase_14 AC 11 ms
5,376 KB
testcase_15 AC 14 ms
6,344 KB
testcase_16 AC 14 ms
6,440 KB
testcase_17 AC 15 ms
6,548 KB
testcase_18 AC 15 ms
6,684 KB
testcase_19 AC 19 ms
6,480 KB
testcase_20 AC 20 ms
6,640 KB
testcase_21 AC 20 ms
6,688 KB
testcase_22 AC 16 ms
5,376 KB
testcase_23 AC 21 ms
6,480 KB
testcase_24 AC 21 ms
6,564 KB
testcase_25 AC 28 ms
6,916 KB
testcase_26 AC 21 ms
6,784 KB
testcase_27 AC 20 ms
6,776 KB
testcase_28 AC 18 ms
7,016 KB
testcase_29 AC 21 ms
6,836 KB
testcase_30 AC 17 ms
6,576 KB
testcase_31 AC 22 ms
6,880 KB
testcase_32 AC 13 ms
5,376 KB
testcase_33 AC 18 ms
6,684 KB
testcase_34 AC 15 ms
6,176 KB
testcase_35 AC 22 ms
7,744 KB
testcase_36 AC 21 ms
7,560 KB
testcase_37 AC 17 ms
6,800 KB
testcase_38 AC 15 ms
6,556 KB
testcase_39 AC 18 ms
7,188 KB
testcase_40 AC 17 ms
6,732 KB
testcase_41 AC 16 ms
6,684 KB
testcase_42 AC 10 ms
5,376 KB
testcase_43 AC 14 ms
6,424 KB
testcase_44 AC 13 ms
5,376 KB
testcase_45 AC 13 ms
6,460 KB
testcase_46 AC 18 ms
6,472 KB
testcase_47 AC 23 ms
6,692 KB
testcase_48 AC 20 ms
6,524 KB
testcase_49 AC 2 ms
5,376 KB
testcase_50 AC 2 ms
5,376 KB
testcase_51 AC 2 ms
5,376 KB
testcase_52 AC 2 ms
5,376 KB
testcase_53 AC 2 ms
5,376 KB
testcase_54 AC 2 ms
5,376 KB
testcase_55 AC 2 ms
5,376 KB
testcase_56 AC 2 ms
5,376 KB
testcase_57 AC 2 ms
5,376 KB
testcase_58 AC 2 ms
5,376 KB
testcase_59 AC 2 ms
5,376 KB
testcase_60 AC 2 ms
5,376 KB
testcase_61 AC 2 ms
5,376 KB
testcase_62 AC 2 ms
5,376 KB
testcase_63 AC 2 ms
5,376 KB
testcase_64 AC 2 ms
5,376 KB
testcase_65 AC 23 ms
7,092 KB
testcase_66 AC 19 ms
6,704 KB
testcase_67 AC 20 ms
6,792 KB
testcase_68 WA -
testcase_69 AC 22 ms
7,784 KB
testcase_70 AC 23 ms
7,956 KB
testcase_71 AC 19 ms
6,616 KB
testcase_72 AC 24 ms
6,900 KB
testcase_73 AC 23 ms
6,964 KB
testcase_74 AC 16 ms
5,376 KB
testcase_75 AC 14 ms
6,496 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return true; } return false; }
template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return true; } return false; }
#define all(x) (x).begin(),(x).end()
#define fi first
#define se second
#define mp make_pair
#define si(x) int(x.size())
const int mod=998244353,MAX=300005,INF=15<<26;

int main(){
    
    std::ifstream in("text.txt");
    std::cin.rdbuf(in.rdbuf());
    cin.tie(0);
    ios::sync_with_stdio(false);
    /*
    for(int N=1;N<=10;N++){
        set<vector<int>> SE,SE2;
        queue<vector<int>> Q;
        
        vector<int> A(N+2);
        SE.insert(A);
        Q.push(A);
        
        while(!Q.empty()){
            auto S=Q.front();Q.pop();
            for(int i=1;i<=N;i++){
                if(S[i-1]%2==S[i+1]%2){
                    int sv=S[i];
                    
                    S[i]++;
                    if(S[i]==3) S[i]=1;
                    if(!SE.count(S)){
                        SE.insert(S);
                        Q.push(S);
                    }
                    S[i]=sv;
                }
            }
        }
        
        SE2.insert(A);
        Q.push(A);
        
        while(!Q.empty()){
            auto S=Q.front();Q.pop();
            for(int i=1;i<=N;i++){
                int sv=S[i];
                
                S[i]++;
                if(S[i]==3) S[i]=1;
                if(!SE2.count(S)){
                    SE2.insert(S);
                    Q.push(S);
                }
                S[i]=sv;
            }
        }
        
        int c=0,d=0;
        for(auto X:SE2){
            bool f=true;
            for(int i=1;i<=N;i++) if(X[i]==0) f=false;
            if(!f) continue;
            if(!SE.count(X)){
                c++;
                //for(int x:X) cout<<x<<" ";
                //cout<<endl;
            }else{
                for(int x:X) cout<<x<<" ";
                cout<<" : ";
                for(int i=0;i+1<si(X);i++) cout<<((X[i]^X[i+1])&1)<<" ";
                cout<<endl;
                d++;
            }
        }
        cout<<c<<" "<<d<<endl;
    }
    */
    ll N;cin>>N;
    vector<ll> A(N);
    for(int i=0;i<N;i++) cin>>A[i];
    vector<ll> B;
    for(int i=0;i<N-1;i++){
        B.push_back(A[i]);
        A[i+1]-=A[i];
    }
    if(A.back()){
        cout<<"No\n";
        return 0;
    }
    for(ll x:B){
        if(x<0){
            cout<<"No\n";
            return 0;
        }
    }
    
    int i=0;
    while(i<si(B)){
        if(B[i]==0) i++;
        else{
            int j=i;
            while(j<si(B)&&B[j]) j++;
            vector<int> S;
            S.push_back(B[i]&1);
            for(int k=i+1;k<j;k++) S.push_back((B[k-1]^B[k])&1);
            S.push_back(B[j-1]&1);
            int z=0;
            for(int k=0;k<si(S);k++){
                if(k%2==0) z+=S[k];
                else z-=S[k];
            }
            if(z){
                cout<<"No\n";
                return 0;
            }
            i=j;
        }
    }
    cout<<"Yes\n";
}
0