제출 #623377

#제출 시각아이디문제언어결과실행 시간메모리
623377PanTkdArranging Shoes (IOI19_shoes)C++14
컴파일 에러
0 ms0 KiB
// // main.cpp // // Created by Panagiotis Chadjicostas on // Copyright © Panagiotis Hadjicostas. All rights reserved. // #include <iostream> #include <algorithm> #include <bitset> #include <complex> #include <deque> #include <fstream> #include <iomanip> #include <iterator> #include <limits> #include <list> #include <cstring> #include <map> #include <queue> #include <set> #include <stack> #include <string> #include <vector> #include <unordered_map> using namespace std; typedef long long ll; typedef vector<ll> vi; typedef pair<ll,ll> ii; #define fo(i,a,b) for(int i = a; i<=b; i++) #define f(i,b) for(int i=0;i<b;i++) #define F first #define S second #define sz size #define ls s,m,idx<<1 #define rs m+1,e,idx<<1|1 const ll MOD=ll(1e9)+7; const ll MAXN=2*ll(1e6); void checker(){ ll n=rand()%20+2; vi a(n,ll()); for(ll i=0;i<n;i++){ a[i]=rand()%20+2; } for(ll b=0;b<(1<<n);b++){ vi on,off; for(ll i=0;i<n;i++){ if(i&(1<<i)){ on.push_back(i); } else{ off.push_back(i); } } } } /////////////////////////////////////////////////////////////////////// struct shoes{ int s; bool r; }A[100000]; vector<vi> d(100000,vi()),a(100000,vi()); vi P(100000,ll()); ll seg[4*100001]; void update (ll qs,ll qe,ll s,ll e, ll idx){ if(s>e)return; if(s>qe||e<qs)return; if(s==e){ seg[idx]^=1; return; } ll m=(s+e)>>1; update(qs,qe,ls); update(qs,qe,rs); seg[idx]=seg[idx<<1]+seg[idx<<1|1]; } ll query(ll qs,ll qe,ll s,ll e,ll idx){ if(qs>qe)return 0; if(s>qe||e<qs)return 0; if(qs<=s&&e<=qe){ return seg[idx]; } ll m=(s+e)>>1; return query(qs,qe,ls)+query(qs,qe,rs); } long long count_swaps(vector <int> S) { int n=S.size(); set<int> se; for(int i=0;i<n;i++){ A[i].s=abs(S[i]); A[i].r=(S[i]>0); se.insert(A[i].s); if(A[i].r){ d[A[i].s].push_back(i); } else a[A[i].s].push_back(i); } vi V(n,0); ll ans=0; for(auto i:se){ for(int j=0;j<a[i].size();j++){ if(a[i][j]>d[i][j]){ ans++; swap(a[i][j],d[i][j]); A[a[i][j]].r=1; A[d[i][j]].r=0; } P[a[i][j]]=d[i][j]; } } for(int i=0;i<n;i++){ update(i,i,0,n-1,1); } for(int i=0;i<n;i++){ ans+=query(i+1,P[i]-1,0,n-1,1); update(P[i],P[i],0,n-1,1); } return ans; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int myArray[] = { -1,-1,1,-1,1,1 }; vector<int> v(begin(myArray), end(myArray)); cout<<count_swaps(v); return 0; }

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

shoes.cpp: In function 'long long int count_swaps(std::vector<int>)':
shoes.cpp:107:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  107 |         for(int j=0;j<a[i].size();j++){
      |                     ~^~~~~~~~~~~~
/usr/bin/ld: /tmp/cc5gpCh2.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccNtC9d2.o:shoes.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status