제출 #1061232

#제출 시각아이디문제언어결과실행 시간메모리
1061232Muhammet순열 (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; }

컴파일 시 표준 에러 (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...