답안 #957681

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
957681 2024-04-04T07:54:56 Z pragmatist 순열 (APIO22_perm) C++17
10 / 100
17 ms 1884 KB
#include "perm.h"
#include<bits/stdc++.h>

using namespace std;

mt19937 rng(time(NULL));

std::vector<int> construct_permutation(long long k)
{
	vector<int> ans;
	k--;
	int n = 0;
	vector<pair<int, int> > v;
	while(k>0) {
		int j = -1;
		int mx = 0;
		for(int i = 60; i >= 1; --i) {
			long long cur = (1ll<<i)-1;
			if(cur <= k) {
				if(cur == k) {
					j = i;
					break;
				}
				int cnt = __builtin_popcountll(k-cur);
				if(cnt>mx) {
					mx = cnt;
					j = i;
				}
			}
		}
		int i = j;
		n += i;
		v.push_back({n-i, n-1});
		long long cur = (1ll<<i)-1;
		k -= cur;
	}
	reverse(v.begin(), v.end());
	for(auto e : v) {
		int l = e.first;
		int r = e.second;
		for(int i = l; i <= r; ++i) {
			ans.push_back(i);
		}
	}
	return ans;
}
# 결과 실행 시간 메모리 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 Partially correct 2 ms 344 KB Partially correct
4 Partially correct 2 ms 604 KB Partially correct
5 Incorrect 17 ms 1884 KB Integer 7280 violates the range [1, 5000]
6 Halted 0 ms 0 KB -