제출 #984205

#제출 시각아이디문제언어결과실행 시간메모리
984205Izaz순열 (APIO22_perm)C++17
91.33 / 100
3 ms600 KiB
#include <bits/stdc++.h> using namespace std; #define f first #define s second #define mn(a,b) min(a,b) #define mx(a,b) max(a,b) #define ll long long ll power[61]; int re(ll k){ for(int i = 0 ; i < 61 ;i++){ if(power[i]>k)return i-1; } return 61; } vector<int>Solve(vector<int>vec , int Now_adding, ll k){ if(k == 0 ){ return vec; } int MAXI = re(k); vector<int>AL; for(int i = 0 ; i < vec.size();i++){ if(i == MAXI){ AL.push_back(Now_adding); } AL.push_back(vec[i]); } if(MAXI == vec.size())AL.push_back(Now_adding); return Solve(AL,Now_adding+1,k - (power[MAXI])); } vector<int> construct_permutation(long long k) { ll Num = 1; k -- ; power[0] = 1; for(int i = 1;i<=60;i++){ Num*=2; power[i] = Num; } vector<vector<int>>Answer; vector<int>My_Answer; int Last =-1; for(int i = 0 ; i < 10000;i ++) { My_Answer.push_back(i); ll Num2 = (i - Last + 1); if(power[Num2]-1>k){ k-=power[i-Last]-1; return (Solve(My_Answer,i+1,k)); } } }

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

perm.cpp: In function 'std::vector<int> Solve(std::vector<int>, int, long long int)':
perm.cpp:23:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   23 |  for(int i = 0 ; i < vec.size();i++){
      |                  ~~^~~~~~~~~~~~
perm.cpp:29:10: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |  if(MAXI == vec.size())AL.push_back(Now_adding);
      |     ~~~~~^~~~~~~~~~~~~
perm.cpp: In function 'std::vector<int> construct_permutation(long long int)':
perm.cpp:41:21: warning: control reaches end of non-void function [-Wreturn-type]
   41 |  vector<vector<int>>Answer;
      |                     ^~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...