Submission #985333

#TimeUsernameProblemLanguageResultExecution timeMemory
985333ph0enlxGame (APIO22_game)C++17
2 / 100
6 ms14424 KiB
#include<bits/stdc++.h>
using namespace std;
const int N = 3e5+10;
vector<set<int>> g(N);
int ng, kg;

bool dfs(int v, vector<bool>& vis, vector<bool>& rec)
{
    vis[v] = true;
    rec[v] = true;

    for (int child : g[v])
    {
        if (!vis[child] && dfs(child, vis, rec) && child<kg) return true;
        else if (rec[child] && child<kg) return true;
    }

    rec[v] = false;
    return false;
}

void init(int n, int k)
{
    ng = n, kg = k;
    for(int i=0; i<k-1; i++)
    {
        g[i].insert(i+1);
    }
}

int add_teleporter(int u, int v)
{
    if(u==v && u<kg) return 1;
    g[u].insert(v);
    vector<bool> vis(ng), rec(ng);
    for(int i=0; i<kg; i++)
    {
        if(vis[i]) continue;
        if(dfs(i, vis, rec)) return 1;
    }

    return 0;
}
#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...