Submission #1021207

#TimeUsernameProblemLanguageResultExecution timeMemory
1021207vjudge1Arranging Shoes (IOI19_shoes)C++17
Compilation error
0 ms0 KiB
#include "shoes.h" #include<iostream> #include<vector> using namespace std; long long st[800001],v[800001]; vector<int>sh[100001],sq[100001]; void bld(int nd,int l,int r){ if(l==r)st[nd]=1,v[l]=1; else{ int m=(l+r)/2; bld(nd*2,l,m); bld(nd*2+1,m+1,r); st[nd]=st[nd*2]+st[nd*2+1]; } } long long val(int nd,int l,int r,int p,int q){ if(r<p||q<l)return 0; if(p<=l&&r<=q)return st[nd]; int m=(l+r)/2; return val(nd*2,l,m,p,q)+val(nd*2+1,m+1,r,p,q); } void upd(int nd,int l,int r,int p){ if(p<l||r<p)return; if(l==r)st[nd]=0,v[l]=0; else{ int m=(l+r)/2; upd(nd*2,l,m,p); upd(nd*2+1,m+1,r,p); st[nd]=st[nd*2]+st[nd]*2+1; } } long long count_swaps(vector<int>s){ long long r=0; bld(1,0,s.size()-1); for(int i=0;i<s.size();i++){ if(s[i]<0)sq[-s[i]].push_back(i); else sh[s[i]].push_back(i); } for(int i=s.size()-1;0<=i;i--){ if(v[i]){ if(s[i]<0){ r+=val(1,0,s.size()-1,sh[-s[i]].back(),i-1); upd(1,0,s.size()-1,sh[-s[i]].back()); sh[-s[i]].pop_back(); sq[-s[i]].pop_back(); }else{ r+=val(1,0,s.size()-1,sq[s[i]].back(),i-1)-1; upd(1,0,s.size()-1,sq[s[i]].back()); sh[s[i]].pop_back(); sq[s[i]].pop_back(); } } } return r; } #include "shoes.h" #include<iostream> #include<vector> using namespace std; long long st[800001],v[800001]; vector<int>sh[100001],sq[100001]; void bld(int nd,int l,int r){ if(l==r)st[nd]=1,v[l]=1; else{ int m=(l+r)/2; bld(nd*2,l,m); bld(nd*2+1,m+1,r); st[nd]=st[nd*2]+st[nd*2+1]; } } long long val(int nd,int l,int r,int p,int q){ if(r<p||q<l)return 0; if(p<=l&&r<=q)return st[nd]; int m=(l+r)/2; return val(nd*2,l,m,p,q)+val(nd*2+1,m+1,r,p,q); } void upd(int nd,int l,int r,int p){ if(p<l||r<p)return; if(l==r)st[nd]=0,v[l]=0; else{ int m=(l+r)/2; upd(nd*2,l,m,p); upd(nd*2+1,m+1,r,p); st[nd]=st[nd*2]+st[nd*2+1]; } } long long count_swaps(vector<int>s){ long long r=0; bld(1,0,s.size()-1); for(int i=0;i<s.size();i++){ if(s[i]<0)sq[-s[i]].push_back(i); else sh[s[i]].push_back(i); } for(int i=s.size()-1;0<=i;i--){ if(v[i]){ if(s[i]<0){ r+=val(1,0,s.size()-1,sh[-s[i]].back(),i-1); upd(1,0,s.size()-1,sh[-s[i]].back()); sh[-s[i]].pop_back(); sq[-s[i]].pop_back(); }else{ r+=val(1,0,s.size()-1,sq[s[i]].back(),i-1)-1; upd(1,0,s.size()-1,sq[s[i]].back()); sh[s[i]].pop_back(); sq[s[i]].pop_back(); } } } return r; }

Compilation message (stderr)

shoes.cpp: In function 'long long int count_swaps(std::vector<int>)':
shoes.cpp:40:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   40 |     for(int i=0;i<s.size();i++){
      |                 ~^~~~~~~~~
shoes.cpp: At global scope:
shoes.cpp:66:11: error: redefinition of 'long long int st [800001]'
   66 | long long st[800001],v[800001];
      |           ^~
shoes.cpp:6:11: note: 'long long int st [800001]' previously declared here
    6 | long long st[800001],v[800001];
      |           ^~
shoes.cpp:66:22: error: redefinition of 'long long int v [800001]'
   66 | long long st[800001],v[800001];
      |                      ^
shoes.cpp:6:22: note: 'long long int v [800001]' previously declared here
    6 | long long st[800001],v[800001];
      |                      ^
shoes.cpp:67:12: error: redefinition of 'std::vector<int> sh [100001]'
   67 | vector<int>sh[100001],sq[100001];
      |            ^~
shoes.cpp:7:12: note: 'std::vector<int> sh [100001]' previously declared here
    7 | vector<int>sh[100001],sq[100001];
      |            ^~
shoes.cpp:67:23: error: redefinition of 'std::vector<int> sq [100001]'
   67 | vector<int>sh[100001],sq[100001];
      |                       ^~
shoes.cpp:7:23: note: 'std::vector<int> sq [100001]' previously declared here
    7 | vector<int>sh[100001],sq[100001];
      |                       ^~
shoes.cpp:69:6: error: redefinition of 'void bld(int, int, int)'
   69 | void bld(int nd,int l,int r){
      |      ^~~
shoes.cpp:9:6: note: 'void bld(int, int, int)' previously defined here
    9 | void bld(int nd,int l,int r){
      |      ^~~
shoes.cpp:79:11: error: redefinition of 'long long int val(int, int, int, int, int)'
   79 | long long val(int nd,int l,int r,int p,int q){
      |           ^~~
shoes.cpp:19:11: note: 'long long int val(int, int, int, int, int)' previously defined here
   19 | long long val(int nd,int l,int r,int p,int q){
      |           ^~~
shoes.cpp:86:6: error: redefinition of 'void upd(int, int, int, int)'
   86 | void upd(int nd,int l,int r,int p){
      |      ^~~
shoes.cpp:26:6: note: 'void upd(int, int, int, int)' previously defined here
   26 | void upd(int nd,int l,int r,int p){
      |      ^~~
shoes.cpp:97:11: error: redefinition of 'long long int count_swaps(std::vector<int>)'
   97 | long long count_swaps(vector<int>s){
      |           ^~~~~~~~~~~
shoes.cpp:37:11: note: 'long long int count_swaps(std::vector<int>)' previously defined here
   37 | long long count_swaps(vector<int>s){
      |           ^~~~~~~~~~~
shoes.cpp: In function 'long long int count_swaps(std::vector<int>)':
shoes.cpp:100:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  100 |     for(int i=0;i<s.size();i++){
      |                 ~^~~~~~~~~