제출 #1061183

#제출 시각아이디문제언어결과실행 시간메모리
1061183Muhammet순열 (APIO22_perm)C++17
10 / 100
841 ms600 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); 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; while(t--){ x++; v.push_back(x); ll y = f(v); if(y == k) 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) break; } return v; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...