제출 #206048

#제출 시각아이디문제언어결과실행 시간메모리
206048Segtree정렬하기 (IOI15_sorting)C++14
20 / 100
1086 ms380 KiB
#include"sorting.h" #include<bits/stdc++.h> #include<iostream> #include<algorithm> #include<vector> #include<queue> using namespace std; typedef long long ll; #define chmin(a,b) a=min(a,b) #define chmax(a,b) a=max(a,b) #define all(x) x,begin(),x.end() #define rep(i,n) for(int i=0;i<n;i++) #define mod 1000000007 #define mad(a,b) a=(a+b)%mod int findSwapPairs(int N,int S[],int M,int X[],int Y[],int P[],int Q[]){ bool sorted=1; rep(i,N)sorted&=(S[i]==i); if(sorted)return 0; int ss[2010]; rep(i,N)ss[i]=S[i]; int R=0; for(;;R++){ swap(S[X[R]],S[Y[R]]); ll cnt=0,s[2010]; rep(i,N)S[i]=s[i]=ss[i]; //cout<<R<<"-";rep(i,N)cout<<"S:"<<s[i]<<endl; for(int i=0;i<N;i++){ ll p; for(int j=0;j<N;j++)if(S[j]==i)p=j; if(i!=p){ P[cnt]=S[i],Q[cnt]=S[p]; cnt++; swap(S[i],S[p]); } } if(cnt<=R+1){ rep(i,N)S[i]=s[i]=ss[i]; R++; assert(cnt==R); for(;cnt<R;cnt++)P[cnt]=Q[cnt]=0; rep(i,N)S[i]=s[i]=ss[i]; //rep(i,R+1)cout<<"PQ:"<<P[i]<<" "<<Q[i]<<endl; /*for(int i=0;i<cnt;i++){ swap(ss[X[i]],ss[Y[i]]); ll place_p,place_q; rep(j,N){ if(ss[j]==P[i])place_p=j; if(ss[j]==Q[i])place_q=j; } swap(ss[place_p],ss[place_q]); P[i]=place_p,Q[i]=place_q; }*/ for(int i=0;i<R;i++){ ll valp=P[i],valq=Q[i]; ll place_p,place_q; for(int j=0;j<N;j++){ if(S[j]==valp)place_p=j; if(S[j]==valq)place_q=j; } swap(S[place_p],S[place_q]); P[i]=place_p,Q[i]=place_q; } return R; } } return -1; } /* int main(){ int n,s[100],m,x[1000],y[1000],p[1000],q[1000]; cin>>n; rep(i,n)cin>>s[i]; cin>>m; rep(i,m){ cin>>x[i]>>y[i]; } cout<<"R="<<findSwapPairs(n,s,m,x,y,p,q)<<endl; }*/

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

sorting.cpp: In function 'int findSwapPairs(int, int*, int, int*, int*, int*, int*)':
sorting.cpp:25:20: warning: conversion to 'int' from 'll {aka long long int}' may alter its value [-Wconversion]
   rep(i,N)S[i]=s[i]=ss[i];
                ~~~~^~~~~~
sorting.cpp:37:21: warning: conversion to 'int' from 'll {aka long long int}' may alter its value [-Wconversion]
    rep(i,N)S[i]=s[i]=ss[i];
                 ~~~~^~~~~~
sorting.cpp:41:21: warning: conversion to 'int' from 'll {aka long long int}' may alter its value [-Wconversion]
    rep(i,N)S[i]=s[i]=ss[i];
                 ~~~~^~~~~~
sorting.cpp:61:10: warning: conversion to 'int' from 'll {aka long long int}' may alter its value [-Wconversion]
     P[i]=place_p,Q[i]=place_q;
          ^~~~~~~
sorting.cpp:61:23: warning: conversion to 'int' from 'll {aka long long int}' may alter its value [-Wconversion]
     P[i]=place_p,Q[i]=place_q;
                       ^~~~~~~
sorting.cpp:15:37: warning: unused parameter 'M' [-Wunused-parameter]
 int findSwapPairs(int N,int S[],int M,int X[],int Y[],int P[],int Q[]){
                                     ^
sorting.cpp:61:17: warning: 'place_q' may be used uninitialized in this function [-Wmaybe-uninitialized]
     P[i]=place_p,Q[i]=place_q;
     ~~~~~~~~~~~~^~~~~~~~~~~~~
sorting.cpp:61:17: warning: 'place_p' may be used uninitialized in this function [-Wmaybe-uninitialized]
sorting.cpp:30:4: warning: 'p' may be used uninitialized in this function [-Wmaybe-uninitialized]
    if(i!=p){
    ^~
#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...