Submission #1053854

#TimeUsernameProblemLanguageResultExecution timeMemory
1053854thatsgonzalezSorting (IOI15_sorting)C++14
Compilation error
0 ms0 KiB
//#include "sorting.h" #include <bits/stdc++.h> using namespace std; typedef vector<int> vi; int n; vector <int> s,x,y,p,q; int ans = 0; void merge(int l, int r, int mid){ vi a; vi b; for(int i = l; i<=mid; i++) a.push_back(s[i]); for(int i = mid+1; i<=r; i++) b.push_back(s[i]); int i = 0, j = 0, k = l; while(i<=mid-l and j<=r-(mid+1)){ if(a[i]>b[j]){ if(k != j+mid+1){ swap(s[x[ans]],s[y[ans]]); p[ans] = k; q[ans] = j+mid+1; ans++; } s[k] = b[j]; j++; k++; } else{ if(k != i+l){ swap(s[x[ans]],s[y[ans]]); p[ans] = k; q[ans] = i+l; ans++; } s[k] = a[i]; i++; k++; } } while(i<=mid-l){ if(k != i+l){ swap(s[x[ans]],s[y[ans]]); p[ans] = k; q[ans] = i+l; ans++; } s[k] = a[i]; i++; k++; } while(j<=r-(mid+1)){ if(k != j+mid+1){ swap(s[x[ans]],s[y[ans]]); p[ans] = k; q[ans] = j+mid+1; ans++; } s[k] = b[j]; j++; k++; } } void separate(int l, int r){ if(l<r){ int mid = (l+r)>>1; separate(l,mid); separate(mid+1,r); merge(l,r,mid); } } int findSwapPairs(int N, int S[], int M, int X[], int Y[], int P[], int Q[]) { if(N == 1){ P[0] = 0; Q[0] = 0; return 1; } n = N; for(int i = 0; i<n; i++) s.push_back(S[i]); for(int i = 0; i<M; i++) x.push_back(X[i]), y.push_back(Y[i]); p.assign(M,0); q.assign(M,0); int ind1 = 0, ind2 = 0; int mn = INT_MAX; for(int i = 0; i<N; i++){ if(s[i]<mn){ mn = s[i]; ind1 = i; } } if(ind1 > 0){ swap(s[x[ans]],s[y[ans]]); if(s[0]!=mn){ p[ans] = 0; q[ans] = ind1; swap(s[0],s[ind1]); } else p[ans] = 0, q[ans] = 0; ans++; } int indx = -1; if(x[ans]==y[ans]){ indx = 1; } else indx = 0; mn = INT_MAX; for(int i = 1; i<n; i++){ if(s[i]<mn){ mn = s[i]; ind2 = i; } } if(ind2>1){ swap(s[x[ans]],s[y[ans]]); swap(s[indx],s[ind2]); p[ans] = min(indx,ind2); q[ans] = max(indx,ind2);ans++; } //separate(2,n-1); for(int i = 2; i<n; i++){ for(int j = i+1; j<n; j++){ if(s[i]>s[j]){ swap(s[x[ans]],s[y[ans]]); if(s[i]>s[j]) swap(s[i],s[j]), p[ans] = i, q[ans] = j; else p[ans] = i, q[ans] = i; ans++; } } } //for(auto &x: s) cout<<x<<" "; cout<<endl; if(s[0]>s[1]){ swap(s[x[ans]],s[y[ans]]); p[ans] = 0, q[ans] = 0, ans++; } for(int i = 0; i<M; i++) P[i] = p[i], Q[i] = q[i];//, cout<<p[i]<<" "<<q[i]<<endl; return ans; } int main(){ int s [] = {1,0}; int x [] = {0,0,1,0,0,0}; int y [] = {1,0,0,0,1,0}; int p [] = {0,0,0,0,0,0}; int q [] = {0,0,0,0,0,0}; cout<<findSwapPairs(2,s,6,x,y,p,p); return 0; }

Compilation message (stderr)

sorting.cpp: In function 'int main()':
sorting.cpp:135:6: warning: declaration of 's' shadows a global declaration [-Wshadow]
  135 |  int s [] = {1,0};
      |      ^
sorting.cpp:9:14: note: shadowed declaration is here
    9 | vector <int> s,x,y,p,q;
      |              ^
sorting.cpp:136:6: warning: declaration of 'x' shadows a global declaration [-Wshadow]
  136 |  int x [] = {0,0,1,0,0,0};
      |      ^
sorting.cpp:9:16: note: shadowed declaration is here
    9 | vector <int> s,x,y,p,q;
      |                ^
sorting.cpp:137:6: warning: declaration of 'y' shadows a global declaration [-Wshadow]
  137 |  int y [] = {1,0,0,0,1,0};
      |      ^
sorting.cpp:9:18: note: shadowed declaration is here
    9 | vector <int> s,x,y,p,q;
      |                  ^
sorting.cpp:138:6: warning: declaration of 'p' shadows a global declaration [-Wshadow]
  138 |  int p [] = {0,0,0,0,0,0};
      |      ^
sorting.cpp:9:20: note: shadowed declaration is here
    9 | vector <int> s,x,y,p,q;
      |                    ^
sorting.cpp:139:6: warning: declaration of 'q' shadows a global declaration [-Wshadow]
  139 |  int q [] = {0,0,0,0,0,0};
      |      ^
sorting.cpp:9:22: note: shadowed declaration is here
    9 | vector <int> s,x,y,p,q;
      |                      ^
sorting.cpp:139:6: warning: unused variable 'q' [-Wunused-variable]
  139 |  int q [] = {0,0,0,0,0,0};
      |      ^
/usr/bin/ld: /tmp/ccWI1Ogx.o: in function `main':
grader.c:(.text.startup+0x0): multiple definition of `main'; /tmp/cccs7UHw.o:sorting.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status