Submission #718436

#TimeUsernameProblemLanguageResultExecution timeMemory
718436vjudge1Game (APIO22_game)C++17
30 / 100
478 ms1272 KiB
#include "game.h"
#include <bits/stdc++.h>

using namespace std;

const int N = 1000 + 5;
int n, k;
bool f[N][N];

void init(int N, int K){
  n = N; k = K;
  for(int i = 0; i < k - 1; ++i){
    f[i][i + 1] = true;
  }
}

int add_teleporter(int u, int v){
  f[u][v] = true;
  if (u >= v && u < k) return 1;

  for(int i = 0; i < n; ++i){
    if (f[i][u]){
      //i -> u -> v
      f[i][v] = true;
      if (i >= v && i < k) return 1;
    }

    if (f[v][i]){
      f[u][i] = true;
      //u -> v -> i
      if (u >= i && u < k) return 1;
    }
  }

  for(int i = 0; i < n; ++i){
    if (!f[i][u]) continue;
    //i -> u

    for(int j = 0; j < n; ++j){
      if (!f[v][j]) continue;
      //v -> j
      //i -> u -> v -> j;

      f[i][j] = true;
      if (i >= j && i < k) 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...