제출 #757160

#제출 시각아이디문제언어결과실행 시간메모리
757160alexander707070장난감 기차 (IOI17_train)C++14
0 / 100
7 ms3156 KiB
#include<bits/stdc++.h>
#define MAXN 100007
using namespace std;
 
int n,m,curr,res[MAXN];
bool good[MAXN],special[MAXN],pr[MAXN],nxt[MAXN];
vector<int> v[MAXN],ans;

vector<int> who_wins(vector<int> A,vector<int> R, vector<int> from,vector<int> to){
    n=int(A.size()); m=int(from.size());
    
    for(int i=0;i<n;i++){
        if(A[i]==1)good[i]=true;
        if(R[i]==1)special[i]=true;
    }

    for(int i=0;i<m;i++){
        if(from[i]==to[i])pr[from[i]]=true;
        else nxt[i]=true;
    }

    if(special[n-1])curr=1;
    else curr=0;

    for(int i=n-1;i>=0;i--){
        if(pr[i]){
            if(good[i] and special[i])curr=1;
            else if(!good[i] and !special[i])curr=0;
        }
        res[i]=curr;

        if(i>0 and !nxt[i-1]){
            if(special[i-1])curr=1;
            else curr=0;
        }
    }

    for(int i=0;i<n;i++){
        ans.push_back(res[i]);
    }

    return ans;
}



#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...