제출 #668906

#제출 시각아이디문제언어결과실행 시간메모리
668906mychecksedadThe Collection Game (BOI21_swaps)C++17
0 / 100
1 ms208 KiB
#include <bits/stdc++.h> using namespace std; #define pb push_back const int M = 505; void schedule(int, int); vector<int> visit(); void answer(std::vector<int>); int n; bitset<M> is[M]; vector<bool> used(n+1); pair<int, int> c[M]; int find_next(int i){ for(int j = 1; j <= n; ++j){ if(i!=j && !is[i][j] && !used[j]){ is[i][j] = 1; is[j][i] = 1; return j; } } return -1; } void solve(int NN, int V){ n = NN; if(n%2==0){ for(int i = 1; i <= n; ++i) c[i] = {0, i}; for(int i = 1; i <= n - 1; ++i){ used.clear(); used.resize(n+1); vector<array<int, 2>> v; for(int j = 1; j <= n; ++j){ if(!used[j]){ int nxt = find_next(j); if(nxt==-1) continue; used[nxt] = used[j] = 1; schedule(j, nxt); v.pb({j, nxt}); } } vector<int> ans = visit(); for(int i = 0; i < n/2; ++i){ c[v[i][!ans[i]]].first++; } } }else{ for(int i = 1; i <= n; ++i) c[i] = {0, i}; for(int i = 1; i <= n - 2; ++i){ used.clear(); used.resize(n+1); vector<array<int, 2>> v; for(int j = 1; j <= n - 1; ++j){ if(!used[j]){ int nxt = find_next(j); if(nxt == -1) continue; used[nxt] = used[j] = 1; schedule(j, nxt); v.pb({j, nxt}); } } vector<int> ans = visit(); for(int i = 0; i < n/2; ++i){ c[v[i][!ans[i]]].first++; } } for(int i = 1; i < n; ++i){ schedule(i, n); vector<int> ans = visit(); ans[0] ? c[i].first++ : c[n].first++; } } sort(c + 1, c + 1 + n); vector<int> a; for(int i = n; i >= 1; --i) a.pb(c[i].second); answer(a); }
#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...