Submission #962749

# Submission time Handle Problem Language Result Execution time Memory
962749 2024-04-14T07:52:00 Z 0npata Permutation (APIO22_perm) C++17
91.3333 / 100
2 ms 348 KB
#include "perm.h"
#include<bits/stdc++.h>

using namespace std;

#define vec vector
#define ll long long

std::vector<int> construct_permutation(ll k)
{
//	cerr << "k: " << k << '\n';

	vec<ll> bp(0);
	vec<int> ans(0);

	for(ll i = 0; i<64; i++) {
		if((((ll)1)<<i) & k) {
			bp.push_back(i);
		}
	}

	int lb = bp.back();
	bp.pop_back();

//	cerr << "lb : " << lb << '\n';

	int cur = 0;

	int j = 0;
	vec<int> right(0);
	vec<int> left(0);

	for(int i = 0; i<lb; i++) {
		if(bp[j] == i) {
			right.push_back(cur);
			cur++;
			j++;
		}
		left.push_back(cur);
		cur++;
	}

	reverse(right.begin(), right.end());

	for(int i = 0; i<left.size(); i++) ans.push_back(left[i]);
	for(int i = 0; i<right.size(); i++) ans.push_back(right[i]);


	return ans;
}

Compilation message

perm.cpp: In function 'std::vector<int> construct_permutation(long long int)':
perm.cpp:45:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   45 |  for(int i = 0; i<left.size(); i++) ans.push_back(left[i]);
      |                 ~^~~~~~~~~~~~
perm.cpp:46:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 |  for(int i = 0; i<right.size(); i++) ans.push_back(right[i]);
      |                 ~^~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 0 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 344 KB Partially correct
6 Correct 1 ms 344 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Partially correct 1 ms 344 KB Partially correct
9 Correct 1 ms 348 KB Output is correct
10 Partially correct 2 ms 348 KB Partially correct
11 Partially correct 1 ms 348 KB Partially correct
12 Partially correct 2 ms 348 KB Partially correct
13 Partially correct 1 ms 344 KB Partially correct