제출 #1295094

#제출 시각아이디문제언어결과실행 시간메모리
1295094faricaThe Collection Game (BOI21_swaps)C++20
15 / 100
67 ms6304 KiB
#include <bits/stdc++.h> #include "swaps.h" using namespace std; using vi = vector<int>; using pi = pair<int,int>; int n; int inc(int a, int b) { if(a+b == n) return n; return (a+b)%n; } void solve(int N, int V) { n = N; vi cnt(n+1, 0); set<pi>st; for(int i=1; i<N; ++i) { vector<bool>vis(N+1, 0); vector<pi>tmp; for(int j=1; j<=N; ++j) { int nw = inc(j,i); if(vis[j] or vis[inc(j,i)] or st.find({min(j,nw), max(j,nw)}) != st.end()) continue; schedule(j, inc(j,i)); vis[j] = vis[inc(j,i)] = 1; tmp.push_back({j, nw}); st.insert({min(j,nw), max(j,nw)}); } vi ans = visit(); for(int j=0; j<ans.size(); ++j) { if(!ans[j]) ++cnt[tmp[j].first]; else ++cnt[tmp[j].second]; } tmp.clear(); vis.assign(N+1, 0); for(int j=i+1; j<=N; ++j) { int nw = inc(j,i); if(vis[j] or vis[inc(j,i)] or st.find({min(j,nw), max(j,nw)}) != st.end()) continue; schedule(j, inc(j,i)); vis[j] = vis[inc(j,i)] = 1; tmp.push_back({j, nw}); st.insert({min(j,nw), max(j,nw)}); } for(int j=1; j<=i; ++j) { int nw = inc(j,i); if(vis[j] or vis[inc(j,i)] or st.find({min(j,nw), max(j,nw)}) != st.end()) continue; schedule(j, inc(j,i)); vis[j] = vis[inc(j,i)] = 1; tmp.push_back({j, nw}); st.insert({min(j,nw), max(j,nw)}); } vi ans2 = visit(); for(int j=0; j<ans2.size(); ++j) { if(!ans2[j]) ++cnt[tmp[j].first]; else ++cnt[tmp[j].second]; } } vi ans(n, 0); for(int i=1; i<=n; ++i) { ans[cnt[i]] = i; } answer(ans); }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...