답안 #660110

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
660110 2022-11-20T11:15:58 Z ymm The Collection Game (BOI21_swaps) C++17
35 / 100
37 ms 464 KB
#include "swaps.h"
#include <bits/stdc++.h>
#define Loop(x,l,r) for (ll x = (l); x < (ll)(r); ++x)
#define LoopR(x,l,r) for (ll x = (r)-1; x >= (ll)(l); --x)
typedef long long ll;
typedef std::pair<int, int> pii;
typedef std::pair<ll , ll > pll;
using namespace std;

const int LG = 10;
const int N = 1<<LG;
vector<int> ord;
vector<pii> sched;
int n;

vector<int> cmp()
{
	int cnt = 0;
	for (auto [i, j] : sched) {
		int x = ord[i];
		int y = ord[j];
		if (x > n || y > n)
			continue;
		schedule(x, y);
		++cnt;
	}
	vector<int> res = cnt? visit(): vector<int>(), ans;
	reverse(res.begin(), res.end());
	for (auto [i, j] : sched) {
		int x = ord[i];
		int y = ord[j];
		if (x > n || y > n) {
			ans.push_back(x < y);
		} else {
			ans.push_back(res.back());
			res.pop_back();
		}
	}
	return ans;
}

void Do(int sz)
{
	Loop (x,0,sz) {
		for (int l = 0; l < N; l += 2*sz) {
			int m = l + sz;
			int r = m + sz;
			Loop (i,l+x,m)
				sched.push_back({i, i+sz-x});
		}
		auto res = cmp();
		Loop (k,0,sched.size()) {
			int x = res[k];
			auto [i, j] = sched[k];
			if (!x)
				swap(ord[i], ord[j]);
		}
		sched.clear();
	}
}

void solve(int _n, int v)
{
	n = _n;
	ord.resize(N);
	iota(ord.begin(), ord.end(), 1);
	Loop (i,0,LG)
		Do(1<<i);
	ord.resize(n);
	answer(ord);
}

Compilation message

swaps.cpp: In function 'void Do(int)':
swaps.cpp:47:8: warning: unused variable 'r' [-Wunused-variable]
   47 |    int r = m + sz;
      |        ^
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 208 KB Correct
2 Correct 7 ms 208 KB Correct
3 Correct 12 ms 208 KB Correct
4 Correct 29 ms 328 KB Correct
5 Correct 32 ms 336 KB Correct
6 Correct 32 ms 336 KB Correct
7 Correct 28 ms 336 KB Correct
8 Correct 34 ms 320 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 208 KB Correct
2 Correct 6 ms 208 KB Correct
3 Correct 12 ms 208 KB Correct
4 Correct 30 ms 324 KB Correct
5 Correct 35 ms 428 KB Correct
6 Correct 28 ms 328 KB Correct
7 Correct 29 ms 328 KB Correct
8 Correct 37 ms 320 KB Correct
9 Correct 34 ms 328 KB Correct
10 Correct 28 ms 328 KB Correct
11 Correct 27 ms 336 KB Correct
12 Correct 29 ms 328 KB Correct
13 Correct 28 ms 388 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 208 KB Correct
2 Correct 7 ms 208 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 208 KB Correct
2 Correct 7 ms 208 KB Correct
3 Correct 5 ms 208 KB Correct
4 Correct 6 ms 208 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 208 KB Correct
2 Correct 7 ms 208 KB Correct
3 Correct 11 ms 208 KB Correct
4 Correct 28 ms 340 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 208 KB Correct
2 Correct 7 ms 208 KB Correct
3 Correct 11 ms 208 KB Correct
4 Correct 28 ms 340 KB Correct
5 Correct 5 ms 208 KB Correct
6 Correct 6 ms 208 KB Correct
7 Correct 14 ms 208 KB Correct
8 Correct 29 ms 336 KB Correct
9 Correct 28 ms 328 KB Correct
10 Correct 27 ms 320 KB Correct
11 Correct 29 ms 340 KB Correct
12 Correct 29 ms 336 KB Correct
13 Correct 5 ms 208 KB Correct
14 Correct 8 ms 208 KB Correct
15 Correct 13 ms 208 KB Correct
16 Correct 29 ms 328 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 208 KB Correct
2 Correct 6 ms 208 KB Correct
3 Correct 12 ms 208 KB Correct
4 Correct 27 ms 332 KB Correct
5 Runtime error 26 ms 456 KB Execution killed with signal 11
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 208 KB Correct
2 Correct 6 ms 208 KB Correct
3 Correct 12 ms 208 KB Correct
4 Correct 27 ms 332 KB Correct
5 Runtime error 26 ms 456 KB Execution killed with signal 11
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 208 KB Correct
2 Correct 7 ms 208 KB Correct
3 Correct 11 ms 208 KB Correct
4 Correct 27 ms 336 KB Correct
5 Runtime error 31 ms 448 KB Execution killed with signal 11
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 208 KB Correct
2 Correct 7 ms 208 KB Correct
3 Correct 11 ms 208 KB Correct
4 Correct 27 ms 336 KB Correct
5 Runtime error 31 ms 448 KB Execution killed with signal 11
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 208 KB Correct
2 Correct 9 ms 208 KB Correct
3 Correct 11 ms 208 KB Correct
4 Correct 28 ms 332 KB Correct
5 Runtime error 23 ms 464 KB Execution killed with signal 11
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 6 ms 208 KB Correct
2 Correct 9 ms 208 KB Correct
3 Correct 11 ms 208 KB Correct
4 Correct 28 ms 332 KB Correct
5 Runtime error 23 ms 464 KB Execution killed with signal 11
6 Halted 0 ms 0 KB -