#include<bits/stdc++.h>
#include "island.h"
using namespace std;
#define S second
#define F first
#define ll long long
//#define int long long
//#pragma GCC optimize("Ofast, unroll-loop")
//#pragma GCC target("avx,avx2")
#pragma GCC optimize("O3")
#define init(arr,val) memset(arr,val,sizeof arr)
const int inf=0x3f3f3f3f;
const ll inff=0x3f3f3f3f3f3f3f3f;
const int X=1000000007;
//const int X=998244353;
/*
int query(int v, int k){
cout << "query " << v << ' ' << k << '\n';
int ret; cin >> ret;
return ret;
}
void answer(int u, int v){
cout << "answer: " << u << ' ' << v << '\n';
}*/
int rk[305], p[305];
int root(int x){
if(p[x]<0) return x;
return p[x]=root(p[x]);
}
void joint(int a, int b, int n){
int ra=root(a), rb=root(b);
if(ra==rb) return;
answer(a,b);
p[ra]+=p[rb];
p[rb]=ra;
return;
}
void solve(int n, int L){
init(p,-1);
auto pk=[&](auto pk, int x)->void{
rk[x]++;
if(rk[x]>n-1) return;
int q=query(x,rk[x]);
if(rk[x]==1) joint(x,q,n);
pk(pk,q);
return;
};
pk(pk,1);
return;
}
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |