Submission #1201573

#TimeUsernameProblemLanguageResultExecution timeMemory
1201573adiyerGame (APIO22_game)C++20
30 / 100
4046 ms14600 KiB
#include <bits/stdc++.h>

using namespace std;

const int MAXN = 5e5 + 11;

int n, k, ok;
int was[MAXN];

vector < int > g[MAXN];

bool dfs(int v){
    was[v] = 1;
    for(int u : g[v]){
        if(was[u] == 1 && u < k) return 1;
        if(!was[u]){
            if(dfs(u)) return 1;
        }
    }
    was[v] = 2;
    return 0;
}

void init(int _n, int _k) {
    n = _n, k = _k;
    for(int i = 0; i < k - 1; i++) g[i].push_back(i + 1);
}

int add_teleporter(int u, int v){
    for(int i = 0; i < n; i++) was[i] = 0;
    g[u].push_back(v);
    return dfs(0);
}

namespace {

int read_int() {
  int x;
  if (scanf("%d", &x) != 1) {
    fprintf(stderr, "Error while reading input\n");
    exit(1);
  }
  return x;
}

}  // namespace
#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...