Submission #584077

#TimeUsernameProblemLanguageResultExecution timeMemory
584077yanndevToy Train (IOI17_train)C++17
0 / 100
6 ms996 KiB
#include <bits/stdc++.h>
using namespace std;

const int MX = 5042;
vector<int> graph[MX];

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

    for (int i = 0; i <= n; i++)
        graph[i].clear();

    vector<int> ans (n);
    bool isChain = true;

    for (int i = 0; i < m; i++) {
        graph[u[i]].push_back(v[i]);
        if (!(u[i] == v[i] || v[i] == u[i] + 1))
            isChain = false;
    }

    isChain = true;

    if (isChain) {
        bool isOk = false;

        for (int i = n - 1; i >= 0; i--) {
            bool hasSelf = false;
            for (auto& x: graph[i])
                if (x == i)
                    hasSelf = true;

            if (hasSelf) {
                if (a[i] == 1) {
                    if (r[i] == 1)
                        isOk = true;
                } else {
                    if (r[i] == 0)
                        isOk = false;
                }
            }

            ans[i] = (int)isOk;
        }

        return ans;
    }

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