# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
99352 | 2019-03-02T21:17:13 Z | TadijaSebez | 통행료 (IOI18_highway) | C++11 | 610 ms | 16464 KB |
#include "highway.h" #include <bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define mp make_pair const int N=100050; ll dist; vector<pair<int,int>> E[N]; vector<int> I[N]; int d[N],f[N]; void AddEdge(int u, int v, int id){ E[u].pb(mp(v,id));E[v].pb(mp(u,id));} void find_pair(int n, vector<int> U, vector<int> V, int A, int B) { int m=U.size(); int top=m-1,bot=0,mid,ans; vector<int> use(m,0); dist=ask(use); while(top>=bot) { mid=top+bot>>1; use.clear();use.resize(m); for(int i=0;i<=mid;i++) use[i]=1; if(ask(use)==dist) bot=mid+1; else ans=mid,top=mid-1; } for(int i=ans+1;i<m;i++) AddEdge(U[i],V[i],i); queue<int> q;q.push(U[ans]);q.push(V[ans]); d[U[ans]]=d[V[ans]]=1; f[U[ans]]=1;f[V[ans]]=2; vector<int> L,R; while(q.size()) { int x=q.front();q.pop(); if(f[x]&1) L.pb(x); if(f[x]&2) R.pb(x); for(auto e:E[x]) { int y=e.first; int id=e.second; if(!d[y]) d[y]=d[x]+1,f[y]=f[x],q.push(y); if(d[y]==d[x]+1) { //if(f[y]==f[x]) I[y].pb(id); //else f[y]|=f[x]; I[y].pb(id); f[y]|=f[x]; } } } int bad=-1; auto Solve=[&](vector<int> vs) { top=(int)vs.size()-1;bot=0; int ret=vs[0]; vector<int> use; while(top>=bot) { mid=top+bot>>1; use.clear();use.resize(m); for(int i=0;i<ans;i++) use[i]=1; for(int i=mid;i<vs.size();i++) if(vs[i]!=bad) for(int id:I[vs[i]]) use[id]=1; if(ask(use)==dist) top=mid-1; else ret=vs[mid],bot=mid+1; } bad=ret; return ret; }; return answer(Solve(L),Solve(R)); }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 5024 KB | Output is correct |
2 | Correct | 6 ms | 5032 KB | Output is correct |
3 | Correct | 9 ms | 5032 KB | Output is correct |
4 | Correct | 6 ms | 4984 KB | Output is correct |
5 | Correct | 6 ms | 5032 KB | Output is correct |
6 | Correct | 6 ms | 4984 KB | Output is correct |
7 | Correct | 6 ms | 5100 KB | Output is correct |
8 | Correct | 6 ms | 5112 KB | Output is correct |
9 | Correct | 6 ms | 4984 KB | Output is correct |
10 | Correct | 6 ms | 5024 KB | Output is correct |
11 | Correct | 6 ms | 5020 KB | Output is correct |
12 | Correct | 6 ms | 5108 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 7 ms | 5112 KB | Output is correct |
2 | Correct | 23 ms | 6108 KB | Output is correct |
3 | Correct | 247 ms | 13936 KB | Output is correct |
4 | Correct | 235 ms | 13832 KB | Output is correct |
5 | Correct | 281 ms | 14724 KB | Output is correct |
6 | Correct | 193 ms | 12936 KB | Output is correct |
7 | Correct | 227 ms | 12560 KB | Output is correct |
8 | Correct | 275 ms | 14860 KB | Output is correct |
9 | Correct | 240 ms | 12808 KB | Output is correct |
10 | Correct | 235 ms | 13656 KB | Output is correct |
11 | Correct | 176 ms | 11088 KB | Output is correct |
12 | Correct | 296 ms | 13908 KB | Output is correct |
13 | Correct | 299 ms | 14148 KB | Output is correct |
14 | Correct | 281 ms | 14292 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 26 ms | 5932 KB | Output is correct |
2 | Correct | 45 ms | 6784 KB | Output is correct |
3 | Correct | 58 ms | 6016 KB | Output is correct |
4 | Correct | 185 ms | 11644 KB | Output is correct |
5 | Correct | 173 ms | 11704 KB | Output is correct |
6 | Correct | 172 ms | 12808 KB | Output is correct |
7 | Correct | 152 ms | 7532 KB | Output is correct |
8 | Correct | 142 ms | 12148 KB | Output is correct |
9 | Correct | 149 ms | 8972 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 7 ms | 4984 KB | Output is correct |
2 | Correct | 30 ms | 5932 KB | Output is correct |
3 | Correct | 200 ms | 12660 KB | Output is correct |
4 | Correct | 267 ms | 13744 KB | Output is correct |
5 | Correct | 168 ms | 10948 KB | Output is correct |
6 | Correct | 168 ms | 11048 KB | Output is correct |
7 | Correct | 250 ms | 12580 KB | Output is correct |
8 | Correct | 192 ms | 11256 KB | Output is correct |
9 | Correct | 287 ms | 14296 KB | Output is correct |
10 | Correct | 247 ms | 13316 KB | Output is correct |
11 | Correct | 293 ms | 14012 KB | Output is correct |
12 | Correct | 249 ms | 13668 KB | Output is correct |
13 | Correct | 289 ms | 13148 KB | Output is correct |
14 | Correct | 172 ms | 11444 KB | Output is correct |
15 | Correct | 168 ms | 11008 KB | Output is correct |
16 | Correct | 159 ms | 9492 KB | Output is correct |
17 | Correct | 276 ms | 13660 KB | Output is correct |
18 | Correct | 284 ms | 14264 KB | Output is correct |
19 | Correct | 170 ms | 10276 KB | Output is correct |
20 | Correct | 188 ms | 10704 KB | Output is correct |
21 | Correct | 195 ms | 12372 KB | Output is correct |
22 | Correct | 188 ms | 10048 KB | Output is correct |
23 | Correct | 263 ms | 15188 KB | Output is correct |
24 | Correct | 238 ms | 15072 KB | Output is correct |
25 | Correct | 241 ms | 14348 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 55 ms | 6132 KB | Output is correct |
2 | Correct | 44 ms | 6128 KB | Output is correct |
3 | Correct | 276 ms | 15088 KB | Output is correct |
4 | Correct | 382 ms | 14528 KB | Output is correct |
5 | Correct | 418 ms | 15020 KB | Output is correct |
6 | Correct | 527 ms | 16448 KB | Output is correct |
7 | Correct | 495 ms | 15764 KB | Output is correct |
8 | Correct | 364 ms | 15168 KB | Output is correct |
9 | Correct | 182 ms | 8460 KB | Output is correct |
10 | Correct | 245 ms | 10628 KB | Output is correct |
11 | Correct | 270 ms | 11692 KB | Output is correct |
12 | Correct | 456 ms | 15336 KB | Output is correct |
13 | Correct | 461 ms | 15744 KB | Output is correct |
14 | Correct | 542 ms | 16188 KB | Output is correct |
15 | Correct | 493 ms | 16296 KB | Output is correct |
16 | Correct | 361 ms | 13220 KB | Output is correct |
17 | Correct | 233 ms | 13980 KB | Output is correct |
18 | Correct | 195 ms | 11004 KB | Output is correct |
19 | Correct | 213 ms | 14488 KB | Output is correct |
20 | Correct | 196 ms | 12544 KB | Output is correct |
21 | Correct | 434 ms | 16416 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 35 ms | 6116 KB | Output is correct |
2 | Correct | 33 ms | 6128 KB | Output is correct |
3 | Correct | 400 ms | 15236 KB | Output is correct |
4 | Correct | 403 ms | 15152 KB | Output is correct |
5 | Correct | 379 ms | 15112 KB | Output is correct |
6 | Correct | 459 ms | 15872 KB | Output is correct |
7 | Correct | 306 ms | 15096 KB | Output is correct |
8 | Correct | 381 ms | 15460 KB | Output is correct |
9 | Correct | 379 ms | 14932 KB | Output is correct |
10 | Correct | 468 ms | 15948 KB | Output is correct |
11 | Correct | 610 ms | 16464 KB | Output is correct |
12 | Correct | 460 ms | 16004 KB | Output is correct |
13 | Correct | 220 ms | 8512 KB | Output is correct |
14 | Correct | 232 ms | 8368 KB | Output is correct |
15 | Correct | 306 ms | 13160 KB | Output is correct |
16 | Correct | 250 ms | 10632 KB | Output is correct |
17 | Correct | 283 ms | 11676 KB | Output is correct |
18 | Correct | 268 ms | 10812 KB | Output is correct |
19 | Correct | 478 ms | 15060 KB | Output is correct |
20 | Correct | 491 ms | 15820 KB | Output is correct |
21 | Correct | 498 ms | 16196 KB | Output is correct |
22 | Correct | 517 ms | 15980 KB | Output is correct |
23 | Correct | 510 ms | 16300 KB | Output is correct |
24 | Correct | 503 ms | 16324 KB | Output is correct |
25 | Correct | 460 ms | 15716 KB | Output is correct |
26 | Correct | 508 ms | 16340 KB | Output is correct |
27 | Correct | 216 ms | 12508 KB | Output is correct |
28 | Correct | 280 ms | 14108 KB | Output is correct |
29 | Correct | 292 ms | 15552 KB | Output is correct |
30 | Correct | 269 ms | 15032 KB | Output is correct |
31 | Correct | 261 ms | 14492 KB | Output is correct |
32 | Correct | 264 ms | 14536 KB | Output is correct |
33 | Correct | 247 ms | 15816 KB | Output is correct |
34 | Correct | 191 ms | 13252 KB | Output is correct |
35 | Correct | 220 ms | 13876 KB | Output is correct |
36 | Correct | 290 ms | 14876 KB | Output is correct |
37 | Correct | 271 ms | 14312 KB | Output is correct |
38 | Correct | 250 ms | 14672 KB | Output is correct |
39 | Correct | 429 ms | 16376 KB | Output is correct |
40 | Correct | 425 ms | 16376 KB | Output is correct |
41 | Correct | 320 ms | 16372 KB | Output is correct |
42 | Correct | 469 ms | 16336 KB | Output is correct |