제출 #833851

#제출 시각UTC-0아이디문제언어결과실행 시간메모리
8338512023-08-22 09:02:51algorithm16경주 (Race) (IOI11_race)C++14
100 / 100
338 ms63492 KiB
#include<iostream>
#include<vector>
#include<set>
#include<algorithm>
#include "race.h"
using namespace std;
typedef long long int llint;
vector <pair<int,llint> > v[200005];
set <pair<llint,llint> > s[200005];
llint k1,mn=1e9,h[25][2],l[25];
void f(int x,int y,llint dd,llint ll) {
if(s[x].size()<s[y].size()) swap(s[x],s[y]);
for(set <pair<llint,llint> >::iterator it=s[y].begin();it!=s[y].end();it++) {
llint l=(*it).first,d=(*it).second;
l-=ll;
d-=dd;
set <pair<llint,llint> >::iterator it2=s[x].lower_bound(make_pair(k1-l+ll,-1LL));
if(it2!=s[x].end() && (*it2).first==k1-l+ll) mn=min(mn,d+(*it2).second-dd);
}
for(set <pair<llint,llint> >::iterator it=s[y].begin();it!=s[y].end();) {
llint l=(*it).first,d=(*it).second;
l-=ll;
d-=dd;
set <pair<llint,llint> >::iterator it2=s[x].lower_bound(make_pair(l+ll,-1LL));
if(it2==s[x].end() || (*it2).first!=l+ll) s[x].insert((*it));
else if((*it2).second>(*it).second) {
s[x].erase(it2);
s[x].insert((*it));
}
it=s[y].erase(it);
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

race.cpp: In function 'void dfs(int, int, llint, llint)':
race.cpp:35:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   35 |  for(int i=0;i<v[x].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...