Submission #1276666

#TimeUsernameProblemLanguageResultExecution timeMemory
1276666jumpIsland Hopping (JOI24_island)C++20
0 / 100
1 ms412 KiB
#include <bits/stdc++.h> bool visit[320]; std::set<int> cache[320]; void solve(int N, int L); int query(int v, int k); void answer(int x, int y); int Ng; void join(std::set<int>& a,std::set<int> b){ for(auto v:b)a.insert(v); } std::set<int> dfs(int current,int parent){ cache[current].insert(parent); if(visit[current])return cache[current]; else visit[current]=true; int test = query(current,1); std::cout << test << '\n'; std::set<int> child; child.insert(current); if(test==parent){ join(cache[current],child); return child; } int t = 2; while(test<current&&test!=parent&&child.find(test)==child.end()&&t<Ng){ join(child,dfs(test,current)); // std::cout << parent << "->" << current << '|'; // std::cout << current << ' ' << test << '|'; // for(auto cc:child)std::cout << cc << ' '; // std::cout << '\n'; answer(current,test); test = query(current,t++); } join(cache[current],child); return child; } void solve(int N, int L) { Ng=N; for (int i=N;i>=1;i--) { dfs(i,i); } }
#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...