답안 #974354

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
974354 2024-05-03T09:10:38 Z IUA_Hasin 순열 (APIO22_perm) C++17
0 / 100
0 ms 348 KB
#include "perm.h"

#include <bits/stdc++.h>

#define endl 								"\n"
#define ll									long long

using namespace std;

ll close_pow(ll n){
	ll a = 1;
	ll b = pow(2, a)-1;
	ll ans = 1;
	while(n>b){
		// cout<<b<<endl;
		ans++;
        b = (ll)(pow(2, ans)-1);
        if(b>n){
            ans--;
            break;
        } else if(b==n){
            break;
        }
        // cout<<b<<endl;
	}
	return ans;
}


std::vector<ll> dunno(ll n){
	std::vector<ll> x;
	while(n>0){
		ll a = close_pow(n);
		// cout<<a<<endl;
		x.push_back(a);
		ll b = (ll)(pow(2, a));
		n = n-b+1;
	}
	return x;
}


std::vector<int> construct_permutation(long long k)
{
	std::vector<ll> v = dunno(k-1);
	ll sum = 0;
	for(ll i=0; i<v.size(); i++){
		sum = sum+v[i];
	}

	std::vector<int> ans;

	ll ins = sum-1;
	ll tempp = 0;
	ll temp = v[tempp];
	ll cnt = 0;
	while(cnt<=sum-1){
		for(ll i=1; i<=temp; i++){
			ll a = ins-temp+i;
			ans.push_back(a);
			cnt++;
		}
		ins = ins-temp;
		tempp++;
		temp = v[tempp];
	}

	// for(int i=0; i<ans.size(); i++){
	// 	cout << ans[i] << " ";
	// }
	// cout<<endl;

	ll exp = 0;
    for(int i=0; i<v.size(); i++){
        ll a = pow(2, v[i]);
        exp = exp+a-1;
    }
    cout<<exp+1<<endl;

	return ans;


}

Compilation message

perm.cpp: In function 'std::vector<int> construct_permutation(long long int)':
perm.cpp:47:15: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |  for(ll i=0; i<v.size(); i++){
      |              ~^~~~~~~~~
perm.cpp:74:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   74 |     for(int i=0; i<v.size(); i++){
      |                  ~^~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB secret mismatch
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB secret mismatch
2 Halted 0 ms 0 KB -