Submission #17955

#TimeUsernameProblemLanguageResultExecution timeMemory
17955ElibayDivide and conquer (IZhO14_divide)C++14
17 / 100
0 ms2892 KiB
#include <bits/stdc++.h>
using namespace std;

const int MaxN = 1e5 + 17;

int n, ind = 1, Sum, Max, Sz;

pair < int, pair < int, int > > p[MaxN];

int main ()
{
    #ifdef Elibay
        freopen (".in", "r", stdin);
    #endif
    scanf ("%d", &n);
    for (int i = 1; i <= n; ++ i)
        scanf ("%d%d%d", &p[i].first, &p[i].second.second, &p[i].second.first);
    sort (p + 1, p + n + 1);
    for (int i = 1; i <= n; ++ i)
    {
        Sz += p[i].second.first;
        int r = p[i].first;
        while (p[ind].first < r - Sz)
            Sum -= p[ind].second.second, ind ++, Sz -= p[ind].second.first;
        Sum += p[i].second.second;
        Max = max (Max, Sum);
    }
    cout << Max;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...