답안 #1038267

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1038267 2024-07-29T15:10:58 Z Unforgettablepl Tower (JOI24_tower) C++17
25 / 100
276 ms 36444 KB
#include <bits/stdc++.h>
using namespace std;

#define int long long

const int INF = 1e18+1;

int32_t main(){
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	int n,q,d,A,B;
	cin >> n >> q >> d >> A >> B;
	vector<pair<int,int>> ranges;
	for(int i=1;i<=n;i++){
		int l,r;cin>>l>>r;
		ranges.emplace_back(l,r);
	}
	ranges.emplace_back(1e12+1,1e12+1);
	set<pair<int,int>> accessible;
	set<pair<int,int>> tempaccessible;
	auto get_latest = [&](int x){
		auto iter = tempaccessible.upper_bound({x,INF});
		if(iter==tempaccessible.begin()) return iter->first;
		else {
			iter--;
			if(x<=iter->second)return x;
			else {
				iter++;
				if(iter==tempaccessible.end())return INF;
				else return iter->first;
			}
		}
	};
	accessible.insert({0,ranges[0].first-1});
	tempaccessible.insert({d,ranges[0].first-1+d});
	for(int i=0;i<n;i++){
		int last = get_latest(ranges[i].second+1);
		if(last>=ranges[i+1].first)continue;
		accessible.insert({last,ranges[i+1].first-1});
		tempaccessible.insert({last+d,ranges[i+1].first-1+d});
	}
	for(int i=1;i<=q;i++){
		int x;cin>>x;
		auto iter = accessible.upper_bound({x,INF});
		if(iter==accessible.begin()) cout << "-1\n";
		else {
			iter--;
			if(x<=iter->second)cout<<x<<'\n';
			else cout<<"-1\n";
		}
	}
} 
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 20 ms 1372 KB Output is correct
2 Correct 21 ms 1516 KB Output is correct
3 Correct 1 ms 600 KB Output is correct
4 Correct 258 ms 34752 KB Output is correct
5 Correct 232 ms 33984 KB Output is correct
6 Correct 253 ms 35376 KB Output is correct
7 Correct 235 ms 34992 KB Output is correct
8 Correct 225 ms 36216 KB Output is correct
9 Correct 239 ms 35776 KB Output is correct
10 Correct 219 ms 35308 KB Output is correct
11 Correct 211 ms 34740 KB Output is correct
12 Correct 238 ms 36444 KB Output is correct
13 Correct 276 ms 36156 KB Output is correct
14 Correct 111 ms 15596 KB Output is correct
15 Correct 84 ms 12736 KB Output is correct
16 Correct 85 ms 13256 KB Output is correct
17 Correct 227 ms 34240 KB Output is correct
18 Correct 217 ms 33856 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -