#include "game.h"
#include <bits/stdc++.h>
using namespace std;
constexpr int N=1e5+5;
vector<int> g[N],tg[N];
queue<int> q;
int n,k;
void init(int _n, int _k) {
n=_n,k=_k;
for(int i=0;i<k-1;++i){
g[i].emplace_back(i+1);
tg[i+1].emplace_back(i);
}
}
int add_teleporter(int u, int v) {
g[u].emplace_back(v);
tg[v].emplace_back(u);
int mini=INT_MAX,maxi=-1;
// find min goto
bool vi[n]; memset(vi,0,sizeof vi);
q.emplace(v); vi[v]=1;
while(q.size()){
int i=q.front(); q.pop();
if(i<k) mini=min(mini,i);
for(auto&j:g[i]) if(!vi[j]){
q.emplace(j); vi[j]=1;
}
}
// find max comefrom
memset(vi,0,sizeof vi);
q.emplace(u); vi[u]=1;
while(q.size()){
int i=q.front(); q.pop();
if(i<k) maxi=max(maxi,i);
for(auto&j:tg[i]) if(!vi[j]){
q.emplace(j); vi[j]=1;
}
}
//cerr<<mini<<" "<<maxi<<'\n';
return mini <= maxi;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |