Submission #1061232

#TimeUsernameProblemLanguageResultExecution timeMemory
1061232MuhammetPermutation (APIO22_perm)C++17
10 / 100
836 ms452 KiB
#include <bits/stdc++.h>
#include "perm.h"

using namespace std;

#define ll long long
#define sz(s) (int)s.size()

const ll M = 1e18+1;

ll f(vector <int> v){
    int n = sz(v);
    vector <ll> dp(n+1,1);
    for(int i = 0; i < n; i++){
        for(int j = 0; j < i; j++){
            if(v[j] < v[i]){
            	if(M-dp[j] < dp[i]) return M;
            	dp[i] += dp[j];
            }
        }
    }

    ll k = 0;
    for(int i = 0; i < n; i++){
    	if(M-dp[i] < k) return M;
        k += dp[i];
    }
    return k+1;
}

vector<int> construct_permutation(ll k){
	int x = -1;
	vector <int> v;
	int t = 1000;
	bool tr1 = 0;
	while(t--){
		x++;
		v.push_back(x);
		ll y = f(v);
		if(y == k){
			tr1 = 1;
			break;
		}
		if(y <= k) continue;
		for(int i = sz(v)-2; i >= 0; i--){
			swap(v[i],v[i+1]);
			y = f(v);
			if(y <= k) break;
		}
		if(y == k){
			tr1 = 1;
			break;
		}
	}
	return v;
}

Compilation message (stderr)

perm.cpp: In function 'std::vector<int> construct_permutation(long long int)':
perm.cpp:35:7: warning: variable 'tr1' set but not used [-Wunused-but-set-variable]
   35 |  bool tr1 = 0;
      |       ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...