답안 #984154

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
984154 2024-05-16T10:48:13 Z Izaz 순열 (APIO22_perm) C++17
10 / 100
195 ms 262144 KB
#include <bits/stdc++.h>
using namespace std;

#define f first
#define s second
#define mn(a,b) min(a,b)
#define mx(a,b) max(a,b)
#define ll long long
ll power[61];
int re(ll k){
	for(int i = 0 ; i < 61 ;i++){
		if(power[i]-1 >= k)return i-1;
	}
	return 61;
}
vector<int>Solve(vector<int>vec , int Now_adding, int k){
	if(k == 0 ){
		return vec;
	}

	int MAXI = re(k);
	vector<int>AL;
	for(int i = 0 ; i < vec.size();i++){
		if(i == MAXI){
			AL.push_back(Now_adding);
		}
		AL.push_back(vec[i]);
	}
	if(MAXI == vec.size())AL.push_back(Now_adding);
	return Solve(AL,Now_adding+1,k - (power[MAXI]));
}
vector<int> construct_permutation(long long  k)
{
	ll Num =  1;
	k -- ;
	power[0] = 1;
	for(int i = 1;i<=60;i++){
		Num*=2;
		power[i] = Num;
	}
	vector<vector<int>>Answer;
	vector<int>My_Answer;
	int Last =-1; 
	for(int i = 0 ; i < 10000;i ++) { 
		My_Answer.push_back(i);
		ll Num2 = (i - Last + 1);
		if(power[Num2]-1>k){
		k-=power[i-Last]-1;
		Answer.push_back(Solve(My_Answer,i+1,k));
		break;
		}
	}
	reverse(Answer.begin(),Answer.end());
	vector<int>Ans2;
	for(auto x:Answer){
		for(auto y: x)Ans2.push_back(y);
	}
   return Ans2;
}
// int main(){
// 	for(auto x:construct_permutation(8)){
// 		cout<<x<<' ';
// 	}
// 	return 0;
// }

Compilation message

perm.cpp: In function 'std::vector<int> Solve(std::vector<int>, int, int)':
perm.cpp:23:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   23 |  for(int i = 0 ; i < vec.size();i++){
      |                  ~~^~~~~~~~~~~~
perm.cpp:29:10: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |  if(MAXI == vec.size())AL.push_back(Now_adding);
      |     ~~~~~^~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 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 Runtime error 195 ms 262144 KB Execution killed with signal 9
6 Halted 0 ms 0 KB -