답안 #417889

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
417889 2021-06-04T13:07:34 Z Kevin_Zhang_TW The Collection Game (BOI21_swaps) C++17
35 / 100
138 ms 464 KB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define pb emplace_back
#define AI(i) begin(i), end(i)
template<class T> bool chmin(T &a, T b) { return b < a && (a = b, true); }
template<class T> bool chmax(T &a, T b) { return a < b && (a = b, true); }
#ifdef KEV
#define DE(args...) kout("[ " + string(#args) + " ] = ", args)
void kout() { cerr << endl; }
template<class T, class ...U> void kout(T a, U ...b) { cerr << a << ' ', kout(b...); }
template<class T> void debug(T l, T r) { while (l != r) cerr << *l << " \n"[next(l)==r], ++l; }
#else
#define DE(...) 0
#define debug(...) 0
#endif
#include "swaps.h"

const int MAX_N = 300010;

void solve(int N, int V) {

	vector<int> id(N); iota(AI(id), 1);


	{
		vector<pair<int,int>> comp;

		int mid = (N+1) / 2;
		for (int i = mid;i < N;++i)
			comp.pb(i-mid, i);

		vector<int> ret = visit();
		for (int j = 0;j < ret.size();++j) {
			if (ret[j] == 0) {
				auto [x, y] = comp[j];
				swap(id[x], id[y]);
			}
		}
	}

	chmin(V, 2 * N);

	for (int i = 1;i < V;++i) {
		vector<pair<int,int>> comp;
		for (int j = i&1;j+1 < N;j += 2) { 
			schedule(id[j], id[j+1]);
			comp.pb(j, j+1);
		}
		vector<int> ret = visit();
		for (int j = 0;j < ret.size();++j) {
			if (ret[j] == 0) {
				auto [x, y] = comp[j];
				swap(id[x], id[y]);
			}
		}
	}

	answer(id);
}

Compilation message

swaps.cpp: In function 'void solve(int, int)':
swaps.cpp:34:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   34 |   for (int j = 0;j < ret.size();++j) {
      |                  ~~^~~~~~~~~~~~
swaps.cpp:51:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   51 |   for (int j = 0;j < ret.size();++j) {
      |                  ~~^~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 200 KB Correct
2 Correct 6 ms 260 KB Correct
3 Correct 37 ms 200 KB Correct
4 Correct 115 ms 292 KB Correct
5 Correct 121 ms 304 KB Correct
6 Correct 109 ms 296 KB Correct
7 Correct 138 ms 296 KB Correct
8 Correct 101 ms 296 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 200 KB Correct
2 Correct 5 ms 292 KB Correct
3 Correct 30 ms 200 KB Correct
4 Correct 122 ms 304 KB Correct
5 Correct 106 ms 356 KB Correct
6 Correct 109 ms 304 KB Correct
7 Correct 120 ms 300 KB Correct
8 Correct 114 ms 304 KB Correct
9 Correct 103 ms 384 KB Correct
10 Correct 111 ms 304 KB Correct
11 Correct 131 ms 296 KB Correct
12 Correct 109 ms 300 KB Correct
13 Correct 110 ms 328 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 200 KB Correct
2 Correct 6 ms 288 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 200 KB Correct
2 Correct 6 ms 288 KB Correct
3 Correct 1 ms 200 KB Correct
4 Correct 8 ms 200 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 200 KB Correct
2 Correct 6 ms 292 KB Correct
3 Correct 28 ms 200 KB Correct
4 Correct 106 ms 408 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 200 KB Correct
2 Correct 6 ms 292 KB Correct
3 Correct 28 ms 200 KB Correct
4 Correct 106 ms 408 KB Correct
5 Correct 1 ms 200 KB Correct
6 Correct 6 ms 292 KB Correct
7 Correct 29 ms 200 KB Correct
8 Correct 106 ms 464 KB Correct
9 Correct 128 ms 372 KB Correct
10 Correct 104 ms 388 KB Correct
11 Correct 108 ms 304 KB Correct
12 Correct 105 ms 296 KB Correct
13 Correct 1 ms 200 KB Correct
14 Correct 6 ms 288 KB Correct
15 Correct 32 ms 200 KB Correct
16 Correct 108 ms 380 KB Correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 200 KB Correct
2 Correct 6 ms 288 KB Correct
3 Correct 32 ms 200 KB Correct
4 Correct 100 ms 296 KB Correct
5 Incorrect 58 ms 276 KB Not correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 200 KB Correct
2 Correct 6 ms 288 KB Correct
3 Correct 32 ms 200 KB Correct
4 Correct 100 ms 296 KB Correct
5 Incorrect 58 ms 276 KB Not correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 200 KB Correct
2 Correct 7 ms 200 KB Correct
3 Correct 28 ms 200 KB Correct
4 Correct 133 ms 292 KB Correct
5 Incorrect 50 ms 388 KB Not correct
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 200 KB Correct
2 Correct 7 ms 200 KB Correct
3 Correct 28 ms 200 KB Correct
4 Correct 133 ms 292 KB Correct
5 Incorrect 50 ms 388 KB Not correct
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 200 KB Correct
2 Correct 6 ms 200 KB Correct
3 Correct 29 ms 200 KB Correct
4 Correct 108 ms 300 KB Correct
5 Incorrect 66 ms 284 KB Not correct
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 200 KB Correct
2 Correct 6 ms 200 KB Correct
3 Correct 29 ms 200 KB Correct
4 Correct 108 ms 300 KB Correct
5 Incorrect 66 ms 284 KB Not correct
6 Halted 0 ms 0 KB -