Submission #1295073

#TimeUsernameProblemLanguageResultExecution timeMemory
1295073faricaThe Collection Game (BOI21_swaps)C++20
0 / 100
1 ms332 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) { return (a+b)%n; }

void solve(int N, int V) {
    n = N;
    vi cnt(n+1, 0);
    for(int i=1; i<N; ++i) {
		vector<bool>vis(N+1, 0);
		vector<pi>tmp;
		for(int j=1; j<=N; ++j) {
			if(vis[j] or vis[inc(j,i)]) continue;
			schedule(j, inc(j,i));
			tmp.push_back({j, inc(j,i)});
		}
		vi ans = visit();
		for(int j=0; j<ans.size(); ++j) cnt[tmp[j].first] += 1-ans[j];
		tmp.clear();
		vis.assign(N+1, 0);
		for(int j=i+1; j<=N; ++j) {
			if(vis[j] or vis[inc(j,i)]) continue;
			schedule(j, inc(j,i));
			tmp.push_back({j, inc(j,i)});
		}
		for(int j=1; j<=i; ++j) {
			if(vis[j] or vis[inc(j,i)]) continue;
			schedule(j, inc(j,i));
			tmp.push_back({j, inc(j,i)});
		}
		ans = visit();
		for(int j=0; i<ans.size(); ++j) cnt[tmp[j].first] += 1-ans[j];
	}
	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...