Submission #168993

#TimeUsernameProblemLanguageResultExecution timeMemory
168993pulpy_orangeArranging Shoes (IOI19_shoes)C++14
Compilation error
0 ms0 KiB
#include<bits/stdc++.h>
using namespace std;
#define ll long long

const int mxn=200007;
int BIT[mxn];

void update(int index, int n, int val){
     while(index<=n){
          BIT[index]+=val;
          index+=index&-index;
     }
}

int query(int index){
     int sum=0;
     while(index>0){
          sum+=BIT[index];
          index-=index&-index;
     }
     return sum;
}


ll count_swaps(vector<int>S){
     int n=S.size();
     int ans=0;

     vector<int>L[100007], R[100007];

     for(int i=0;i<n;i++){
          if(S[i]<0){
               L[abs(S[i])].push_back(i);
          }
          else R[S[i]].push_back(i);
     }

     vector<int>M(n+1, 0);
     for(int i=1;i<=100007;i++){
          for(int j=0;j<L[i].size();j++){
               M[L[i][j]+1]=R[i][j]+1;
               M[R[i][j]+1]=L[i][j]+1;
          }
     }

     int vis[n+1];
     memset(vis, 0, sizeof(vis));
     ll ans=0;
     for(int i=1;i<M.size();i++){
          if(vis[i])continue;
          int cnt=query(M[i])-query(i);
          if(S[i-1]>0){
               ans+=(M[i]-i)-cnt;
          }
          else{
               ans+=(M[i]-i-1)-cnt;
          }
          vis[M[i]]=1;
          update(M[i], n, 1);
     }

     return ans;
}

Compilation message (stderr)

shoes.cpp: In function 'long long int count_swaps(std::vector<int>)':
shoes.cpp:40:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
           for(int j=0;j<L[i].size();j++){
                       ~^~~~~~~~~~~~
shoes.cpp:48:9: error: conflicting declaration 'long long int ans'
      ll ans=0;
         ^~~
shoes.cpp:27:10: note: previous declaration as 'int ans'
      int ans=0;
          ^~~
shoes.cpp:49:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
      for(int i=1;i<M.size();i++){
                  ~^~~~~~~~~