| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 25584 | suhgyuho_william | 버스 (JOI14_bus) | C++14 | 303 ms | 12224 KiB | 
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define lld long long
#define pp pair<int,int>
#define pb push_back
#define MOD 1000000007
#define left lleft
#define right rright
#define INF 2000000000
#define Linf 1000000000000000000LL
#define next nnext
#define minus mminus
using namespace std;
int N,M,Q,ans;
struct data{
	int x,y,tx,ty;
}edge[300002];
vector<pair<int,pp>> d[100002];
priority_queue<pp> q;
vector<int> print;
int main(){
	scanf("%d %d",&N,&M);
	for(int i=1; i<=M; i++){
		scanf("%d %d %d %d",&edge[i].x,&edge[i].y,&edge[i].tx,&edge[i].ty);
		if(edge[i].x == 1) print.pb(edge[i].tx);
	}
	sort(edge+1,edge+M+1,[&](data &x,data &y){
		return x.ty < y.ty;
	});
	sort(print.begin(),print.end());
	for(int i=0; i<print.size(); i++) d[1].pb({print[i],{i,i}});
	for(int i=1; i<=M; i++){
		int x,y,tx,ty;
		x = edge[i].x; y = edge[i].y; tx = edge[i].tx; ty = edge[i].ty;
		if(d[x].size() == 0 || d[x][0].first > tx) continue;
		int l,r,t;
		l = 0; r = d[x].size()-1;
		while(l <= r){
			int mid = (l+r)/2;
			if(d[x][mid].first <= tx){
				t = mid;
				l = mid+1;
			}else r = mid-1;
		}
		int e = d[x][t].second.second;
		if(d[y].size() == 0 || d[y].back().second.second < e){
            int tt;
            if(d[y].size() == 0) tt = 0;
            else tt = d[y].back().second.second+1;
			d[y].pb({ty,{tt,e}});
		}
	}
	scanf("%d",&Q);
	for(int i=1; i<=Q; i++){
		int query;
		scanf("%d",&query);
		if(d[N].size() == 0 || query < d[N][0].first){
			ans = -1;
		}else{
			int l,r,t;
			l = 0; r = d[N].size()-1;
			while(l <= r){
				int mid = (l+r)/2;
				if(d[N][mid].first <= query){
					t = mid;
					l = mid+1;
				}else r = mid-1;
			}
			t = d[N][t].second.second;
			ans = print[t];
		}
		printf("%d\n",ans);
	}
	return 0;
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
