Submission #621670

#TimeUsernameProblemLanguageResultExecution timeMemory
621670MinaRagy06Permutation (APIO22_perm)C++17
91.33 / 100
4 ms368 KiB
#include <bits/stdc++.h>
#include "perm.h"
// #include "grader.cpp"
using namespace std;
#define lesgooo ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0)
#define endl	'\n'

vector<int> add(vector<int>&a, int ii, int num)
{
	vector<int> ret(a.size()+1);
	int ptr = 0;
	for (int i = 0; i < ret.size(); i++)
	{
		if (i == ii) ret[i] = num;
		else ret[i] = a[ptr], ptr++;
	}
	return ret;
}
vector<int> construct_permutation(long long k)
{
	int ans = 0;
	for (int i = 0; i <= 63; i++) if (!(k>>i)) {ans = i-1; break;}
	k-=((1ll<<ans));
	vector<int> a(ans);
	for (int i = 0; i < ans; i++) a[i]=i;
	int toAdd = ans;
	while (k)
	{
		ans = 0;
		for (int i = 0; i <= 63; i++) if (!(k>>i)) {ans = i-1; break;}
		k-=(1ll<<ans);
		a = add(a, ans, toAdd), toAdd++;
	}
	return a;
}

Compilation message (stderr)

perm.cpp: In function 'std::vector<int> add(std::vector<int>&, int, int)':
perm.cpp:12:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   12 |  for (int i = 0; i < ret.size(); i++)
      |                  ~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...