Submission #1153830

#TimeUsernameProblemLanguageResultExecution timeMemory
1153830lampoopppIsland Hopping (JOI24_island)C++17
100 / 100
3 ms408 KiB
#ifndef SKY #include "island.h" #endif // SKY #include <bits/stdc++.h> using namespace std; const int N=300; #ifdef SKY int n; vector<int> adj[N+1]; int d[301][301]; int vis[N+1]; int tme=0; int now; void dfs(int u) { for(int v : adj[u]) { if(vis[v]==tme) continue; vis[v]=tme; d[now][v]=d[now][u]+1; dfs(v); } } int cntq=0; int query(int v, int k) { cntq++; vector<pair<int,int>> x; for(int i=1;i<=n;++i) { if(i==v) continue; x.push_back({d[v][i]*N+i,i}); } sort(x.begin(), x.end()); return x[k-1].second; } void answer(int x, int y) { cout << x << " " << y << '\n'; } #endif // SKY bool got[N+1]; int dem=0; int query(int v, int k); void answer(int x, int y); void solve(int n ,int t) { got[1]=true; int x = query(1,1); answer(1,x); got[x]=1; dem=1; int cal=2; while(dem<n-1) { int x = query(1,cal); cal++; if(got[x]) continue; int c=1; while(true) { int y = query(x,c); c++; if(got[y]) { got[x]=1; answer(x,y); dem++; break; } else { answer(x,y); dem++; got[y]=1; } } } } #ifdef SKY int main() { cout << "running on machine \n"; cin >> n; int u,v; for(int i=1;i<n;++i) { cin >> u >> v; adj[u].push_back(v); adj[v].push_back(u); } for(int i=1;i<=n;++i) { tme++; now=i; vis[i]=tme; dfs(i); } for(int i=1;i<=n;++i) { for(int j=1;j<=n;++j) { cout << d[i][j] << " "; } cout << '\n'; } cout << '\n'; solve(n,n*2); cout << cntq << '\n'; } #endif // SKY
#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...