Submission #954489

# Submission time Handle Problem Language Result Execution time Memory
954489 2024-03-28T03:42:15 Z horiseun Permutation (APIO22_perm) C++17
64.6308 / 100
12 ms 1628 KB
#include <iostream>
#include <vector>
#include <algorithm>
#include "perm.h"
using namespace std;

#define ll long long

vector<int> construct_permutation(ll k) {
	vector<ll> pwrs;
	pwrs.push_back((ll) 1);
	for (int i = 0; i < 59; i++) {
		pwrs.push_back(pwrs.back() * 2);	
	}
	vector<int> szs;
	for (int i = pwrs.size() - 1; i >= 0; i--) {
		if (k >= pwrs[i]) {
			szs.push_back(i);
			k -= pwrs[i];
		}
	}
	/*
	for (int i = 0; i < szs.size(); i++) {
		cout << szs[i] << "\n";
	}
	*/
	vector<int> ret;
	int curr = 0;
	for (int i = 0; i < szs.size(); i++) {
		for (int j = curr + szs[i] - 1; j >= curr; j--) {
			ret.push_back(j);
		}
		curr += szs[i];
	}
	for (int i = 0; i < szs.size() - 1; i++) {
		ret.push_back(curr + i);
	}
	reverse(ret.begin(), ret.end());
	/*
	for (int i = 0; i < ret.size(); i++) {
		cout << ret[i] << " ";
	}
	cout << "\n";
	*/
	return ret;
}

Compilation message

perm.cpp: In function 'std::vector<int> construct_permutation(long long int)':
perm.cpp:29:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |  for (int i = 0; i < szs.size(); i++) {
      |                  ~~^~~~~~~~~~~~
perm.cpp:35:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   35 |  for (int i = 0; i < szs.size() - 1; i++) {
      |                  ~~^~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
3 Partially correct 1 ms 348 KB Partially correct
4 Partially correct 2 ms 348 KB Partially correct
5 Partially correct 6 ms 952 KB Partially correct
6 Partially correct 5 ms 604 KB Partially correct
7 Partially correct 7 ms 860 KB Partially correct
8 Partially correct 10 ms 1116 KB Partially correct
9 Correct 1 ms 344 KB Output is correct
10 Partially correct 12 ms 1628 KB Partially correct
11 Partially correct 9 ms 1112 KB Partially correct
12 Partially correct 8 ms 1116 KB Partially correct
13 Partially correct 11 ms 1112 KB Partially correct