# |
제출 시각 |
아이디 |
문제 |
언어 |
결과 |
실행 시간 |
메모리 |
834583 |
2023-08-22T15:31:16 Z |
ttamx |
철로 (IOI14_rail) |
C++14 |
|
59 ms |
844 KB |
#include "rail.h"
#include<bits/stdc++.h>
using namespace std;
void findLocation(int N, int first, int L[], int S[]){
vector<pair<int,int>> vec;
for(int i=1;i<N;i++)vec.emplace_back(getDistance(0,i),i);
sort(vec.begin(),vec.end());
int p=vec[0].second;
L[0]=first;
L[p]=first+vec[0].first;
S[0]=1;
S[p]=2;
int l=0,r=p;
set<int> C,D;
C.emplace(L[0]);
D.emplace(L[r]);
for(int i=1;i<N-1;i++){
auto [dist,id]=vec[i];
int dl=getDistance(l,id),dr=getDistance(r,id);
int pos=L[l]+dl;
auto it=C.upper_bound(pos);
if(it!=C.begin()&&dr==L[r]-*(--it)+pos-*it)L[id]=pos,S[id]=2;
else{
pos=L[r]-dr;
it=D.lower_bound(pos);
if(it!=D.end()&&dl==*it-L[l]+*it-pos)L[id]=pos,S[id]=1;
else if(dist==L[p]-first+L[p]-pos)L[id]=pos,S[id]=1;
else L[id]=L[l]+dl,S[id]=2;
}
if(S[id]==1){
C.emplace(L[id]);
if(L[id]<L[l])l=id;
}else{
D.emplace(L[id]);
if(L[id]>L[r])r=id;
}
}
}
Compilation message
rail.cpp: In function 'void findLocation(int, int, int*, int*)':
rail.cpp:20:14: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
20 | auto [dist,id]=vec[i];
| ^
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
340 KB |
Output is correct |
2 |
Correct |
1 ms |
384 KB |
Output is correct |
3 |
Correct |
1 ms |
340 KB |
Output is correct |
4 |
Correct |
1 ms |
340 KB |
Output is correct |
5 |
Correct |
1 ms |
376 KB |
Output is correct |
6 |
Correct |
1 ms |
340 KB |
Output is correct |
7 |
Correct |
1 ms |
340 KB |
Output is correct |
8 |
Correct |
1 ms |
340 KB |
Output is correct |
9 |
Correct |
1 ms |
340 KB |
Output is correct |
10 |
Correct |
1 ms |
340 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
340 KB |
Output is correct |
2 |
Correct |
1 ms |
388 KB |
Output is correct |
3 |
Correct |
1 ms |
340 KB |
Output is correct |
4 |
Correct |
1 ms |
340 KB |
Output is correct |
5 |
Correct |
1 ms |
384 KB |
Output is correct |
6 |
Correct |
0 ms |
340 KB |
Output is correct |
7 |
Correct |
1 ms |
340 KB |
Output is correct |
8 |
Correct |
1 ms |
340 KB |
Output is correct |
9 |
Correct |
0 ms |
340 KB |
Output is correct |
10 |
Correct |
1 ms |
340 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
46 ms |
716 KB |
Output is correct |
2 |
Correct |
46 ms |
752 KB |
Output is correct |
3 |
Correct |
45 ms |
764 KB |
Output is correct |
4 |
Correct |
46 ms |
716 KB |
Output is correct |
5 |
Correct |
45 ms |
760 KB |
Output is correct |
6 |
Correct |
46 ms |
772 KB |
Output is correct |
7 |
Correct |
47 ms |
772 KB |
Output is correct |
8 |
Correct |
45 ms |
756 KB |
Output is correct |
9 |
Correct |
46 ms |
764 KB |
Output is correct |
10 |
Correct |
46 ms |
716 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
54 ms |
768 KB |
Output is correct |
2 |
Correct |
52 ms |
756 KB |
Output is correct |
3 |
Correct |
48 ms |
844 KB |
Output is correct |
4 |
Correct |
47 ms |
760 KB |
Output is correct |
5 |
Correct |
48 ms |
844 KB |
Output is correct |
6 |
Correct |
46 ms |
764 KB |
Output is correct |
7 |
Correct |
53 ms |
760 KB |
Output is correct |
8 |
Correct |
47 ms |
752 KB |
Output is correct |
9 |
Correct |
50 ms |
844 KB |
Output is correct |
10 |
Correct |
48 ms |
696 KB |
Output is correct |
11 |
Correct |
47 ms |
752 KB |
Output is correct |
12 |
Correct |
47 ms |
768 KB |
Output is correct |
13 |
Correct |
47 ms |
716 KB |
Output is correct |
14 |
Correct |
46 ms |
756 KB |
Output is correct |
15 |
Correct |
59 ms |
756 KB |
Output is correct |
16 |
Correct |
46 ms |
716 KB |
Output is correct |
17 |
Correct |
47 ms |
844 KB |
Output is correct |
18 |
Correct |
46 ms |
756 KB |
Output is correct |
19 |
Correct |
47 ms |
756 KB |
Output is correct |
20 |
Correct |
47 ms |
716 KB |
Output is correct |