제출 #1061311

#제출 시각아이디문제언어결과실행 시간메모리
1061311Muhammet순열 (APIO22_perm)C++17
91.33 / 100
837 ms596 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++){ k += dp[i]; k = min(k,M); } return k+1; } vector<int> construct_permutation(ll k){ int x = -1; vector <int> v; int t = 1000; bool tr = 0; while(t--){ x++; v.push_back(x); ll y = f(v); if(y == k){ tr = 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){ tr = 1; break; } } return v; }

컴파일 시 표준 에러 (stderr) 메시지

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