제출 #675984

#제출 시각아이디문제언어결과실행 시간메모리
675984Essa2006Permutation (APIO22_perm)C++17
0 / 100
1 ms212 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define endl '\n' #define FF first #define SS second #define all(a) a.begin(), a.end() #define mod (ll)(1000000007) int mx=0, K; vector<int>AAns; void solve(){ vector<int>Ans; bitset<1000>a=K; int group=0; for(int i=0;i<=64;i++){ if(a[i]){ group++; for(int j=0;j<i;j++) Ans.push_back(j); } } vector<int>Old=Ans; int n=Ans.size(), cur=0; for(int i=n-1;i>=0;i--){ if(!Old[i]){ int ind=i; while(true){ Ans[ind]=cur++; if(ind<n-1 && Old[ind+1]) ind++; else break; } } } group--; for(int i=0;i<Ans.size();i++) Ans[i]+=mx; mx+=cur; for(int i=0;i<AAns.size();i++){ Ans.push_back(AAns[i]); } AAns=Ans; if(group>1){ K=group+1; solve(); } else if(group){ int s=mx; for(int i=0;i<AAns.size();i++){ swap(AAns[i], s); } AAns.push_back(s); } } vector<int> construct_permutation(int k){ K=k; mx=0; AAns.clear(); solve(); return AAns; }

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

perm.cpp: In function 'void solve()':
perm.cpp:37:22: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |         for(int i=0;i<Ans.size();i++)
      |                     ~^~~~~~~~~~~
perm.cpp:40:22: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   40 |         for(int i=0;i<AAns.size();i++){
      |                     ~^~~~~~~~~~~~
perm.cpp:50:26: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   50 |             for(int i=0;i<AAns.size();i++){
      |                         ~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...