제출 #1212299

#제출 시각아이디문제언어결과실행 시간메모리
1212299jasonic순열 (APIO22_perm)C++20
89.98 / 100
1 ms328 KiB
#include "perm.h" #include <bits/stdc++.h> using namespace std; #define ll long long int mn, mx; void pushMin(vector<int> &vec) { vec.push_back(mn); if(mn == mx) { mx++; } mn--; } void pushMax(vector<int> &vec, int cnt) { for(int i = cnt+mx-1; i >= mx; i--) { vec.push_back(i); } if(mn == mx) { mn--; } mx += cnt; } vector<int> solve(ll k) { vector<int> res; if(k == 2) { pushMin(res); } else if (k != 1) { for(auto prime : {2, 3, 5, 7, 11}) { if(k % prime == 0) { res = solve(k/prime); pushMax(res, prime-1); return res; } } res = solve(k-1); pushMin(res); } return res; } vector<int> construct_permutation(ll k) { mn = 0, mx = 0; vector<int> res = solve(k); int mn = 0; for(auto &i : res) mn = min(mn, i); for(auto &i : res) i -= mn; return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...