#include <bits/stdc++.h>
using namespace std;
#include "island.h"
#define N lli(500)
typedef long long int lli;
typedef vector<lli> vlli;
typedef pair<lli,lli> plli;
typedef vector<plli> vplli;
vlli gr[N];
set<plli> cev;
plli par[N];
lli bul(lli v){
if(par[v].first == v)
return par[v].first;
return par[v].first = bul(par[v].first);
}
bool birlestir(lli a, lli b){
a = bul(a);
b = bul(b);
if(a == b)
return 0;
if(par[a].second >= par[b].second)
par[b].first = a;
else
par[a].first = b;
if(par[a].second == par[b].second)
par[a].second++;
return 1;
}
bool isle[N];
void solve(int n, int l) {
//cout << n << " " << l << endl;
for(lli i = 0;i<=n;i++)
par[i] = {i,0};
for(lli j = 1;j<n;j++){
for(lli i = 2;i<=n;i++){
if(isle[i])
continue;
lli su = query(i,j);
//cout << i << " " << j << " " << su << endl;
if(su >= i || !birlestir(i,su))
isle[i] = 1;
else{
gr[i].push_back(su);
gr[su].push_back(i);
cev.insert({min(i,su), max(i,su)});
}
//cout << i << " " << j << " sonda" << su << endl;
}
}
//cout << "sonda" << endl;
for (plli say : cev) {
answer(say.first, say.second);
}
}
# | 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... |