Submission #406721

#TimeUsernameProblemLanguageResultExecution timeMemory
406721wiwihoToy Train (IOI17_train)C++14
5 / 100
15 ms844 KiB
#include "train.h"

#include<bits/stdc++.h>

#define printv(a, b) { \
    for(auto pv : a) b << pv << " "; \
    b << "\n"; \
}
#define mp make_pair
#define F first
#define S second
#define iter(a) a.begin(), a.end()
#define lsort(a) sort(iter(a))
#define eb emplace_back

using namespace std;

typedef long long ll;

using pii = pair<int, int>;

const ll MAX = 1LL << 60;

ostream& operator<<(ostream& o, pii p){
    return o << '(' << p.F << ',' << p.S << ')';
}

vector<int> who_wins(vector<int> a, vector<int> r, vector<int> u, vector<int> v) {
    int n = a.size(), m = u.size();

    vector<bool> c(n), nxt(n);
    for(int i = 0; i < m; i++){
        if(u[i] == v[i]) c[u[i]] = true;
        else nxt[u[i]] = true;
    }

    vector<int> ans(n);
    int p = 0;
    for(int i = 0; i < n; i++){
        bool win = false;
        if(a[i]){
            if(c[i] && r[i]) win = true;
            else if(nxt[i]) continue;
            else win = false;
        }
        else{
            if(c[i] && !r[i]) win = false;
            else if(nxt[i]) continue;
            else win = true;
        }
        while(p <= i) ans[p++] = win;
    }

    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...