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
AC × 3
AC × 43
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