제출 #1284844

#제출 시각아이디문제언어결과실행 시간메모리
1284844Muhammad_AneeqIsland Hopping (JOI24_island)C++20
0 / 100
3 ms400 KiB
#include "island.h" #include "iostream" #include "bits/stdc++.h" using namespace std; int const MAXN=310; int vis[MAXN]={}; set<int>s; void sol(int N) { vector<int>z; vector<pair<int,int>>ed; int g=query(N,1); if (vis[g]!=2) ed.push_back({N,g}); int y; s.erase(N); if (!vis[g]) { y=query(g,1); vis[N]=1; vis[g]=1; s.erase(g); if (y!=N) { z={}; ed.push_back({y,g}); z.push_back(y); for (int j=0;j<z.size();j++) { int i=z[j]; s.erase(i); vis[i]=1; int f=query(i,1); if (vis[f]) { f=query(i,2); if (vis[f]) break; } ed.push_back({i,f}); z.push_back(f); } } } y=query(N,2); if(!vis[y]) { z={}; ed.push_back({y,N}); vis[y]=1; z.push_back(y); for (int j=0;j<z.size();j++) { int i=z[j]; s.erase(i); vis[i]=1; int f=query(i,1); if (vis[f]) { f=query(i,2); if (vis[f]) break; } ed.push_back({i,f}); z.push_back(f); } } for (auto [i,j]:ed) answer(i,j); } void solve(int N, int L) { for (int i=1;i<=N;i++) s.insert(i); vis[1]=2; s.erase(1); for (int i=1;i<=3;i++) { int z=query(1,i); vis[z]=1; answer(1,z); } while (s.size()) sol(*rbegin(s)); }
#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...