#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 |
- |