# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
983875 | 2024-05-16T07:38:57 Z | avighna | Permutation (APIO22_perm) | C++17 | 3 ms | 504 KB |
#include <set> #include <map> #include <deque> #include "perm.h" typedef long long ll; ll fsb(ll x) { for (ll i = 63; i >= 0; -- i) { if (x & (1LL << i)) { return i; } } return -1; } std::vector<int> construct_permutation(long long x) { std::deque<ll> ans; ll bit = fsb(x); for (ll i = 0; i < bit; ++ i) { ans.push_back(i); } for (ll i = bit - 1; i >= 0; -- i) { if (x & (1LL << i)) { ans.push_front(bit - i - 1); } } for (auto &i : ans) { i *= 1000; } std::set<ll> st; for (ll i = ans.size() - 1; i >= 0; -- i) { while (st.count(ans[i])) { ans[i]++; } st.insert(ans[i]); } std::map<ll, ll> mp; auto it = st.begin(); for (ll j = 0; j < ans.size(); ++ j) { mp[*it] = j; it++; } std::vector<int> ret; for (auto &i : ans) { ret.push_back(mp[i]); } return ret; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 1 ms | 344 KB | Output is correct |
4 | Correct | 1 ms | 344 KB | Output is correct |
5 | Partially correct | 2 ms | 348 KB | Partially correct |
6 | Correct | 2 ms | 344 KB | Output is correct |
7 | Correct | 2 ms | 348 KB | Output is correct |
8 | Partially correct | 3 ms | 348 KB | Partially correct |
9 | Correct | 2 ms | 348 KB | Output is correct |
10 | Partially correct | 3 ms | 504 KB | Partially correct |
11 | Partially correct | 2 ms | 348 KB | Partially correct |
12 | Partially correct | 3 ms | 344 KB | Partially correct |
13 | Partially correct | 3 ms | 488 KB | Partially correct |