제출 #16642

#제출 시각아이디문제언어결과실행 시간메모리
16642khsoo01정렬하기 (IOI15_sorting)C++98
74 / 100
62 ms19832 KiB
#include<bits/stdc++.h> #include "sorting.h" using namespace std; int n,m,cur[200005],def[200005],x[200005],y[200005]; int p[200005],q[20005],where[200005],vis[200005],cnt,ans; void Swap(int A,int B) { int tmp; tmp=where[cur[A]]; where[cur[A]]=where[cur[B]]; where[cur[B]]=tmp; tmp=cur[A]; cur[A]=cur[B]; cur[B]=tmp; } int param(int s,int e) { int piv=(s+e)/2,i; for(i=0;i<n;i++) { cur[i]=def[i]; where[cur[i]]=i; } for(i=0;i<piv;i++) { Swap(x[i],y[i]); } memset(vis,0,sizeof(vis)); cnt=0; for(i=0;i<n;i++) { while(cur[i]!=i) { p[cnt]=cur[i]; q[cnt]=cur[cur[i]]; Swap(i,cur[i]); cnt++; } } if(s==e)return s; if(cnt<=piv) { param(s,piv); } else param(piv+1,e); } int findSwapPairs(int N, int S[], int M, int X[], int Y[], int P[], int Q[]) { int i; n=N; m=M; for(i=0;i<n;i++) def[i]=S[i]; for(i=0;i<m;i++) { x[i]=X[i]; y[i]=Y[i]; } ans=param(0,m); for(i=0;i<n;i++) { cur[i]=def[i]; where[cur[i]]=i; } for(i=0;i<cnt;i++) { Swap(x[i],y[i]); P[i]=where[p[i]]; Q[i]=where[q[i]]; Swap(where[p[i]],where[q[i]]); } for(i=cnt;i<ans;i++) {P[i]=0;Q[i]=0;} return ans; }

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

sorting.cpp: In function 'int param(int, int)':
sorting.cpp:41:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
#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...