제출 #761976

#제출 시각아이디문제언어결과실행 시간메모리
761976Ahmed57정렬하기 (IOI15_sorting)C++17
16 / 100
1 ms340 KiB
#include <bits/stdc++.h> using namespace std; int lol[100001],vis[100001]; vector<int> v; void dfs(int i){ vis[i] = 1; v.push_back(i); if(vis[lol[i]]==0)dfs(lol[i]); } //int P[100001] , Q[100001]; int findSwapPairs(int N,int S[],int M,int X[],int Y[],int P[],int Q[]){ if(N==1)return 0; bool ss =1; if(X[0]==Y[0]){ ss = 0; } int ans = 0; if(ss){ swap(S[0],S[1]); int on = 0 , ze = 0; for(int i = 0;i<N;i++){ if(S[i]==0)ze = i; if(S[i]==1)on = i; } if(ze>1){ swap(S[(on?0:1)],S[ze]); P[0] = ze , Q[0] = (on?0:1); //cout<<ze<<"hh"<<endl; ans++; swap(S[0],S[1]); if(on>1){ swap(S[0],S[on]); P[1] = 0 , Q[1] = on; ans++; swap(S[0],S[1]); } }else if(on>1){ if(ze==0){ swap(S[1],S[on]); P[0] = on; Q[0] = 1; ans++; }else{ swap(S[0],S[on]); P[0] = on; Q[0] = 0; ans++; } swap(S[0],S[1]); } } for(int i = 0;i<N;i++){ lol[i] = S[i]; vis[i] = 0; } int ha = -1; for(int i = 2;i<N;i++){ if(vis[i]==0){ v.clear(); dfs(i); for(int j = 1;j<v.size();j++){ ha++; P[ans] = v[0]; Q[ans] = v[j]; ans++; } } } if(!ss){ return ans; } if(ha==-1){ if(S[0]==1){ return ans; }else{ P[ans] = 0; Q[ans] = 0; ans++; return ans; } }else{ int pr = ha%2; if(S[pr]==0){ return ans; }else{ P[ans] = 0; Q[ans] = 0; ans++; return ans; } } } /* int main(){ int S[] = {0,4,1,3,2}; 0 4 1 3 2 4 0 1 3 2 E 1 0 4 3 2 A 0 1 4 3 2 int X[] = {0,0,0,0,0,0,0,0,0,0,0}; int Y[] = {1,1,1,1,1,1,1,1,1,1,1}; cout<<findSwapPairs(5,S,100,X,Y)<<endl; for(int i = 0;i<10;i++){ cout<<P[i]<<" "<<Q[i]<<endl; } } */

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

sorting.cpp: In function 'int findSwapPairs(int, int*, int, int*, int*, int*, int*)':
sorting.cpp:61:28: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   61 |             for(int j = 1;j<v.size();j++){
      |                           ~^~~~~~~~~
sorting.cpp:11:37: warning: unused parameter 'M' [-Wunused-parameter]
   11 | int findSwapPairs(int N,int S[],int M,int X[],int Y[],int P[],int Q[]){
      |                                 ~~~~^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...