제출 #730266

#제출 시각아이디문제언어결과실행 시간메모리
730266ogibogi2004철로 (IOI14_rail)C++14
30 / 100
68 ms724 KiB
#include "rail.h" #include<bits/stdc++.h> using namespace std; void findLocation(int N, int first, int location[], int stype[]) { location[0]=first; stype[0]=1; vector<pair<int,int> >distances; vector<int>dist_by_ind(N); for(int i=1;i<N;i++) { distances.push_back({getDistance(0, i),i}); dist_by_ind[i]=distances.back().first; } sort(distances.begin(),distances.end()); location[distances[0].second]=location[0]+distances[0].first; stype[distances[0].second]=2; set<int>cs; set<int>ds; int minc=0,maxd=distances[0].second; cs.insert(location[0]); ds.insert(location[distances[0].second]); for(int i=1;i<distances.size();i++) { int j=distances[i].second; int disl=getDistance(j,minc); int disr=getDistance(j,maxd); bool flag=1; if(true) { flag=0; //then next is D, it might be to the right of maxd or to the left //if dist(minc,maxd)>disl => its between L and R //otherwise it is after R location[j]=location[minc]+disl; int needed_locationC=(location[j]+location[maxd]-disr)/2;//location[j]+location[maxd]-2*ne=disr => if(cs.find(needed_locationC)!=cs.end()) { stype[j]=2; if(location[j]>location[maxd])maxd=j; ds.insert(location[j]); } else { flag=1; } } if(flag) { location[j]=location[maxd]-disr; stype[j]=1; if(location[j]<location[minc])minc=j; cs.insert(location[j]); } } /*for(int i=0;i<N;i++) { cout<<i<<": "<<location[i]<<" "<<stype[i]<<endl; }*/ }

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

rail.cpp: In function 'void findLocation(int, int, int*, int*)':
rail.cpp:24:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   24 |     for(int i=1;i<distances.size();i++)
      |                 ~^~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...