제출 #168993

#제출 시각아이디문제언어결과실행 시간메모리
168993pulpy_orangeArranging Shoes (IOI19_shoes)C++14
컴파일 에러
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; }

컴파일 시 표준 에러 (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++){
                  ~^~~~~~~~~