This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
bool arr[1001][50001];
int mi[1001];
int N,K;
vector<int> adj[50001];
void dfs(int i,int boss){
arr[boss][i] = 1;
mi[boss] = min(mi[boss],i);
for(auto j:adj[i]){
if(boss==j){
mi[boss] = boss;
}
if(!arr[boss][j])dfs(j,boss);
}
}
void init(int n, int k){
N = n , K = k;
for(int i = 0;i<k;i++){
mi[i] = 1e9;
arr[i][i] = 1;
}
}
int add_teleporter(int u, int v){
adj[u].push_back(v);
bool ss = 0;
for(int i = 0;i<K;i++){
if(arr[i][u]&&v==i){
mi[i] = min(mi[i],i);
}
if(arr[i][u]&&(!arr[i][v])){
dfs(v,i);
}
if(mi[i]<=i){
ss = 1;
}
}
return ss;
}/*
int main(){
init(6,3);
cout<<add_teleporter(3, 4)<<endl;
cout<<add_teleporter(5, 0)<<endl;
cout<<add_teleporter(4, 5)<<endl;
cout<<add_teleporter(5, 3)<<endl;
cout<<add_teleporter(1, 4)<<endl;
}
*/
# | 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... |