Submission #1202565

#TimeUsernameProblemLanguageResultExecution timeMemory
1202565trashaccount게임 (APIO22_game)C++20
0 / 100
0 ms1088 KiB
#include "game.h"
#include <bits/stdc++.h>
using namespace std;

const int NM = 3e4, KM = 1000;

int n, k;
vector <int> adj[NM+5];
bool chk[NM+5][KM+5];
bool solved;

void init(int _n, int _k){
  n = _n, k = _k;
  for (int i = 0; i < n; i++) adj[i].clear();
  for (int i = 0; i+1 < k; i++)
    adj[i].push_back(i+1);
  
  for (int i = 0; i < n; i++)
    for (int j = 0; j < k; j++)
      chk[i][j] = 0;

  for (int i = 0; i < k; i++)
    for (int j = 0; j < i; j++)
      chk[i][j] = 1;
  solved = 0;
}

void dfs(int u, int t){
  chk[u][t] = 1;
  if (u < k && t == u) solved = 1;
  for (int v : adj[u]){
    if (!chk[v][t]) dfs(v, t);
  }
}

int add_teleporter(int u, int v){
  adj[u].push_back(v);
  if (u == v && u < k) solved = 1;
  for (int t = 0; t < k; t++){
    if (!chk[u][t] && u != t) continue;
    dfs(v, t);
  }
  return solved;
}
#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...