Submission #1256478

#TimeUsernameProblemLanguageResultExecution timeMemory
1256478Mer123haba456Island Hopping (JOI24_island)C++20
35 / 100
3 ms464 KiB
#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 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...