Submission #73741

#TimeUsernameProblemLanguageResultExecution timeMemory
73741MKopchevToy Train (IOI17_train)C++14
5 / 100
207 ms2496 KiB
#include<bits/stdc++.h>
using namespace std;
const int nmax=5e3+42;
int n;
vector< int > adj[nmax];
vector<int> ret;
bool rech[nmax];
bool ans=0,been[nmax];
void dfs(int node)
{
    if(been[node])return;
    if(rech[node])ans=1;
    been[node]=1;
    for(auto k:adj[node])
        dfs(k);
}
vector<int> who_wins(vector<int> a, vector<int> r, vector<int> u, vector<int> v)
{
    bool c1=1;
    int m=u.size();
    for(int i=0;i<m;i++)
        {
        adj[u[i]].push_back(v[i]);
        if(v[i]-u[i]>1||v[i]-u[i]<0)c1=0;
        }
    n=a.size();
    for(int i=0;i<n;i++)
        rech[i]=r[i];
    bool one=1;
    for(auto k:a)
        if(k!=1)one=0;
    if(one)
    {
        for(int i=0;i<n;i++)
        {
            memset(been,0,sizeof(been));
            ans=0;
            dfs(i);
            ret.push_back(ans);
        }
    }

    if(c1)
    {
        ret={};
        for(int i=0;i<n;i++)
        {
            int where=i;
            while(1)
            {
                bool self=0;
                for(auto k:adj[where])
                    if(k==where)self=1;
                if(self==0)where++;
                else if(a[where]==r[where])
                {
                    ret.push_back(a[where]);
                    break;
                }
                else if(adj[where].size()==2)where++;
                else
                {
                    ret.push_back(!a[where]);
                    break;
                }
            }
        }
    }
    return ret;
}
/*
int main()
{
    for(auto k:who_wins({1,1,1},{0,0,1},{0,1,2},{1,0,2}))cout<<k<<endl;
}
*/
#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...