| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1352583 | nathlol2 | Fuel Station (NOI20_fuelstation) | C++20 | 264 ms | 29352 KiB |
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 3e5 + 5;
int n, d;
tuple<int, int, int> a[N];
bool ok(int x){
vector<tuple<int, int, int>> v;
v.push_back({0, 0, 0});
for(int i = 1;i<=n;i++){
if(get<2>(a[i]) >= x) v.push_back(a[i]);
}
int cur = x;
v.push_back({d, 0, 0});
for(int i = 1;i<v.size();i++){
cur -= (get<0>(v[i]) - get<0>(v[i - 1]));
if(cur < 0) return 0;
cur += get<1>(v[i]);
}
return 1;
}
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> n >> d;
vector<int> cand = {0};
for(int i = 1;i<=n;i++){
auto &[x, b, c] = a[i];
cin >> x >> b >> c;
cand.push_back(c);
}
sort(a + 1, a + n + 1);
cand.push_back(d);
for(int i = 0;i<cand.size() - 1;i++){
int l = cand[i], r = cand[i + 1] - 1, res = -1;
while(l <= r){
int md = (l + r) / 2;
if(ok(md)){
res = md;
r = md - 1;
}else{
l = md + 1;
}
}
if(res != -1) return cout << res, 0;
}
cout << d;
}| # | 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... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
