제출 #151161

#제출 시각아이디문제언어결과실행 시간메모리
151161imyujinOn the Grid (FXCUP4_grid)C++17
0 / 100
2 ms320 KiB
#include "grid.h"
#include <bits/stdc++.h>
using namespace std;

const int MAXN = 1005;

vector<int> ans;

std::vector<int> SortDisks(int N) {
	ans.resize(N);
	vector<int> v;
	for(int i = 0; i < N; i++) v.push_back(i);
	int left = N;
	int sum = 0;
	
	int X = PutDisks(v);
	for(int i = 0; left > 1; i++) {
		int t = v[left - 1];
		for(int j = left - 1; j > 0; j--) v[j] = v[j - 1];
		v[0] = t;
		int Y = PutDisks(v);
		if(Y != X - 1) {
			t = v[0];
			ans[t] = Y - N + 1;
			sum += ans[t];
			int lb = lower_bound(v.begin() + left, v.end(), t, [&](const int a, const int b) { return ans[a] < ans[b]; } ) - v.begin();
			for(int j = 0; j < lb - 1; j++) v[j] = v[j + 1];
			v[lb - 1] = t;
			left--;
		}
	}
	ans[v[0]] = N * (N + 1) / 2 - sum;
	return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...