Submission #642543

#TimeUsernameProblemLanguageResultExecution timeMemory
642543danikoynovPermutation (APIO22_perm)C++17
91 / 100
2 ms340 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; bool tf = false; for (ll bit = 63; bit >= 0; bit --) { if ((k & ((ll)1 << bit)) != 0) { if (!tf) { for (int s = 0; s < bit; s ++) v.push_back(cur ++); cnt ++; tf = true; } else { if (bit == 0) { cnt ++; continue; } cur ++; int num = v[bit - 1]; num ++; for (int j = bit; j < v.size(); j ++) v[j] ++; v.push_back(num); } } } 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; }

Compilation message (stderr)

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