Submission #1772353


Source Code Expand

#include <bits/stdc++.h>
#define REP(i,a,b) for(int i=(a);i<(b);i++)
#define RREP(i,a,b) for(int i=(a);i>=(b);i--)
#define pq priotity_queue
#define P pair<int,int>
#define P2 pair<int,P>
#define P3 pair<int,P2>
typedef long long ll; typedef long double ld;
using namespace std;
const int INF=1e9, MOD=1e9+7, around[]={0,1,1,-1,-1,0,-1,1,0,0};
const ll LINF=1.1e18;
const ld PI=abs(acos(-1));
int n,q,d[100010];
ll t,a[100010],pos[100010];
 
int main() {
	cin >> n >> t >> q;
	REP(i,0,n) cin >> a[i] >> d[i];
 
	int l=n,r=-1;
	for(int i=n-1;i>=0;i--) {
		if(d[i]==2) l=i;
		else {
			if(l==n) pos[i]=LINF;
			else pos[i]=(a[l-1]+a[l])/2;
		}
	}
	
	REP(i,0,n) {
		if(d[i]==1) r=i;
		else {
			if(r==-1) pos[i]=-LINF;
			else pos[i]=(a[r]+a[r+1])/2;
		}
	}
 
	REP(i,0,q) {
		int x; cin >> x; x--;
		if(d[x]==1) cout << min(pos[x], a[x]+t) << endl;
		else cout << max(pos[x], a[x]-t) << endl;
	}
 
	return 0;
}

Submission Info

Submission Time
Task D - JOI国のお散歩事情 (Walking in JOI Kingdom)
User ecasdqina
Language C++14 (GCC 5.4.1)
Score 100
Code Size 952 Byte
Status AC
Exec Time 92 ms
Memory 2176 KB

Judge Result

Set Name set01 set02 set03 set04 set05
Score / Max Score 20 / 20 20 / 20 20 / 20 20 / 20 20 / 20
Status
AC × 1
AC × 1
AC × 1
AC × 1
AC × 1
Set Name Test Cases
set01 data1
set02 data2
set03 data3
set04 data4
set05 data5
Case Name Status Exec Time Memory
data1 AC 2 ms 256 KB
data2 AC 6 ms 384 KB
data3 AC 62 ms 2176 KB
data4 AC 90 ms 2176 KB
data5 AC 92 ms 2176 KB