Submission #982966

#TimeUsernameProblemLanguageResultExecution timeMemory
982966KenjikrabGame (APIO22_game)C++17
60 / 100
4088 ms18780 KiB
#include "game.h"
#include<bits/stdc++.h>
using namespace std;
int const n_max=3e5+10;
int mx[n_max];
vector<int> node[n_max];
int n,k;
void init(int N, int K)
{
  n=N;
  k=K;
  fill(mx,mx+n,-1);
}
bool flag=false;
int add_teleporter(int u, int v)
{
  if(flag)return 1;
  node[u].push_back(v);
  queue<int> q;
  int val=mx[u];
  if(u<k)val=u;
  if(val==-1)return 0;
  q.push(v);
  while(!q.empty())
  {
    int cur=q.front();
    q.pop();
    if(mx[cur]>=val)continue;
    if(cur<k&&val>=cur)
    {
      flag=true;
      return 1;
    }
    mx[cur]=val;
    for(auto nxt:node[cur])
    {
      if(mx[nxt]>=val)continue;
      q.push(nxt);
    }
  }
  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...