Submission #91125

#TimeUsernameProblemLanguageResultExecution timeMemory
91125Aydarov03Divide and conquer (IZhO14_divide)C++14
48 / 100
1085 ms4152 KiB
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e5 + 5;
int x[N] , g[N] , e[N];
int n;
int maxg;
int l , r;

inline bool check( int mid )
{
    int gold;
    int lenergy;
    int genergy;

    for(int i = 1; i <= n; i++)
    {
        gold = 0;
        lenergy = 0;
        genergy = 0;
        for(int j = i; j <= n; j++)
        {
            gold += g[j];
            lenergy = x[j] - x[i];
            genergy += e[j];
            if( genergy >= lenergy && gold >= mid )return true;
        }
    }
    return false;

}




main()
{
    scanf("%lld" , &n);

    for(int i = 1; i <= n; i++)
    {
        scanf("%lld %lld %lld" , &x[i] , &g[i] , &e[i]);
        maxg += g[i];
    }

    r = maxg + 1;

    while( r - l > 1 )
    {
        int mid = (l + r) / 2LL;

        if( check(mid) )l = mid;
        else    r = mid;
    }

    printf("%lld" , l);

}

Compilation message (stderr)

divide.cpp:36:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main()
      ^
divide.cpp: In function 'int main()':
divide.cpp:38:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%lld" , &n);
     ~~~~~^~~~~~~~~~~~~
divide.cpp:42:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%lld %lld %lld" , &x[i] , &g[i] , &e[i]);
         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...