제출 #642540

#제출 시각아이디문제언어결과실행 시간메모리
642540danikoynov순열 (APIO22_perm)C++17
64.62 / 100
18 ms1148 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
vector < int > construct_permutation(ll k)
{
    vector < int > v;
    k --;
    ll cur = 0, cnt = 0;
    for (ll bit = 0; bit <= 63; bit ++)
    {
        if ((k & ((ll)1 << bit)) != 0)
        {
            vector < int > d;
            for (int s = 0; s < bit; s ++)
                d.push_back(cur ++);
            cnt ++;
            for (int j = 0; j < v.size(); j ++)
                d.push_back(v[j]);
            v = d;
        }
    }

    vector < int > d;
    for (int s = 0; s < cnt; s ++)
        d.push_back(cur ++);
    reverse(d.begin(), d.end());
    for (int j = 0; j < v.size(); j ++)
        d.push_back(v[j]);
    v = d;
    /**for (int i = 0; i < v.size(); i ++)
        cout << v[i] << " ";
    cout << endl;*/
    return v;

}

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

perm.cpp: In function 'std::vector<int> construct_permutation(ll)':
perm.cpp:17:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 |             for (int j = 0; j < v.size(); j ++)
      |                             ~~^~~~~~~~~~
perm.cpp:27:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   27 |     for (int j = 0; j < v.size(); j ++)
      |                     ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...