답안 #731796

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
731796 2023-04-28T02:07:26 Z hoainiem 순열 (APIO22_perm) C++17
91.3333 / 100
3 ms 340 KB
#include "perm.h"
#include <bits/stdc++.h>
using namespace std;
long long k, sum = 1;
vector<long long>f;
vector<int> ans;
long long get(long long cur, long long x){
    if (x >= 60)
        return 1LL << 60;
    if (k / cur < (1 << x))
        return cur * (1 << x);
    return 1LL << 60;
}
std::vector<int> construct_permutation(long long K){
    ans.clear();
    f.clear();
    k = K;
    f.push_back(1);
    ans.push_back(0);
    sum = 1;
    for (int i = 1; sum < k; i++){
        if (sum * 2 <= k){
            ans.push_back(i);
            f.push_back(sum);
            sum <<= 1;
            continue;
        }
        for (long long j = (int)f.size() - 1, d = sum; j > 0; j--){
            d -= f[j];
            if (sum + d <= k){
                sum += d;
                ans.insert(ans.begin() + j, i);
                f.insert(f.begin() + j, d);
                break;
            }
        }
    }
    ans.erase(ans.begin());
    for (int i = 0; i < (int)ans.size(); i++)
        ans[i]--;
    return ans;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 300 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Partially correct 2 ms 340 KB Partially correct
6 Correct 2 ms 300 KB Output is correct
7 Correct 2 ms 304 KB Output is correct
8 Partially correct 2 ms 340 KB Partially correct
9 Correct 1 ms 340 KB Output is correct
10 Partially correct 2 ms 340 KB Partially correct
11 Partially correct 2 ms 300 KB Partially correct
12 Partially correct 3 ms 296 KB Partially correct
13 Partially correct 2 ms 340 KB Partially correct