답안 #973442

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
973442 2024-05-02T02:34:10 Z CDuong 순열 (APIO22_perm) C++17
91.3333 / 100
2 ms 656 KB
#include "perm.h"
#include <bits/stdc++.h>
using namespace std;

vector<int> construct_permutation(long long k)
{
	vector<int> binary;
	while (k) {
		binary.push_back(k & 1);
		k >>= 1;
	}
	reverse(binary.begin(), binary.end());

	deque<int> dq;
	int cnt = 0, sz = (int)binary.size(), cntt = 0;
	for (int i = 1; i < sz; ++i) {
		dq.emplace_back(cnt++);
		if (binary[i]) {
			if (i + 1 < sz and binary[i + 1] and cntt > 1) {
				int val = dq.front(); dq.pop_front();
				dq.emplace_front(cnt + 1);
				dq.emplace_front(val);
				dq.emplace_front(cnt);
				cnt += 2;
			}
			else dq.emplace_front(cnt++);
		}
	}
	return {dq.begin(), dq.end()};
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Partially correct 1 ms 348 KB Partially correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Partially correct 1 ms 348 KB Partially correct
9 Correct 1 ms 348 KB Output is correct
10 Partially correct 1 ms 348 KB Partially correct
11 Partially correct 2 ms 656 KB Partially correct
12 Partially correct 1 ms 348 KB Partially correct
13 Partially correct 1 ms 348 KB Partially correct