Submission #5251240
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
int N, T[20000], A[20000], B[20000];
bool check(int X){
vector<int> L2R[20000];
for(int i=0; i<N; i++){
int d = (A[i] - X) / B[i];
int64_t l = max(0, T[i]-d), r = min(N-1, T[i]+d);
L2R[l].push_back(r);
}
priority_queue<int, vector<int>, greater<int>> R;
for(int i=0; i<N; i++){
for(int r : L2R[i]) R.push(r);
if(R.size() == 0) return false;
int r = R.top(); R.pop();
if(r < i) return false;
}
return true;
}
int main(){
cin >> N;
for(int i=0; i<N; i++){
cin >> T[i] >> A[i] >> B[i];
T[i]--;
}
int64_t ok = -1e9-1, ng = *min_element(A, A+N) + 1;
while(ng-ok>1){
int64_t mid = (ok+ng)/2;
(check(mid) ? ok : ng) = mid;
}
cout << ok << endl;
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - Fruits in Season |
| User | betrue12 |
| Language | C++14 (GCC 5.4.1) |
| Score | 600 |
| Code Size | 885 Byte |
| Status | AC |
| Exec Time | 107 ms |
| Memory | 1396 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 600 / 600 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00, 01, 02 |
| All | 00, 01, 02, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00 | AC | 3 ms | 768 KiB |
| 01 | AC | 3 ms | 768 KiB |
| 02 | AC | 3 ms | 768 KiB |
| 11 | AC | 5 ms | 768 KiB |
| 12 | AC | 6 ms | 768 KiB |
| 13 | AC | 6 ms | 768 KiB |
| 14 | AC | 6 ms | 768 KiB |
| 15 | AC | 8 ms | 768 KiB |
| 16 | AC | 9 ms | 768 KiB |
| 17 | AC | 6 ms | 768 KiB |
| 18 | AC | 9 ms | 768 KiB |
| 19 | AC | 7 ms | 768 KiB |
| 20 | AC | 81 ms | 1336 KiB |
| 21 | AC | 37 ms | 1080 KiB |
| 22 | AC | 73 ms | 1280 KiB |
| 23 | AC | 40 ms | 1080 KiB |
| 24 | AC | 45 ms | 1108 KiB |
| 25 | AC | 82 ms | 1372 KiB |
| 26 | AC | 107 ms | 1380 KiB |
| 27 | AC | 99 ms | 1348 KiB |
| 28 | AC | 92 ms | 1344 KiB |
| 29 | AC | 90 ms | 1340 KiB |
| 30 | AC | 86 ms | 1308 KiB |
| 31 | AC | 68 ms | 1204 KiB |
| 32 | AC | 86 ms | 1276 KiB |
| 33 | AC | 86 ms | 1332 KiB |
| 34 | AC | 88 ms | 1308 KiB |
| 35 | AC | 58 ms | 1156 KiB |
| 36 | AC | 88 ms | 1376 KiB |
| 37 | AC | 93 ms | 1384 KiB |
| 38 | AC | 68 ms | 1336 KiB |
| 39 | AC | 64 ms | 1288 KiB |
| 40 | AC | 85 ms | 1300 KiB |
| 41 | AC | 78 ms | 1348 KiB |
| 42 | AC | 36 ms | 1288 KiB |
| 43 | AC | 96 ms | 1344 KiB |
| 44 | AC | 81 ms | 1392 KiB |
| 45 | AC | 83 ms | 1364 KiB |
| 46 | AC | 103 ms | 1396 KiB |
| 47 | AC | 91 ms | 1388 KiB |
| 48 | AC | 96 ms | 1388 KiB |
| 49 | AC | 93 ms | 1388 KiB |
| 50 | AC | 89 ms | 1328 KiB |