Submission #37825

#TimeUsernameProblemLanguageResultExecution timeMemory
37825mirbek01Divide and conquer (IZhO14_divide)C++14
48 / 100
1000 ms37172 KiB
# include <bits/stdc++.h>

# define pb push_back
# define fr first
# define sc second
# define mk make_pair

using namespace std;

const int inf = 1e9 + 7;
const int N = 1e6 + 5;

typedef long long ll;

int n, a[N];
ll ans, b[N], c[N], cb[N], cc[N];

int main()
{
      cin >> n;

      for(int i = 1; i <= n; i ++)
      {
            cin >> a[i] >> b[i] >> c[i];
            cb[i] = b[i];
            cc[i] = c[i];
            b[i] += b[i - 1];
            c[i] += c[i - 1];
      }



      for(int i = 1; i <= n; i ++)
      {
//            cout << "\\\\\\\\\\\\\\\\\\\n";
            for(int j = i; j <= n; j ++)
            {
                  ll res = b[j], sum = c[j];
//                  cout << sum + a[i] << " " << a[j] << " " << i << " " << j << endl;
//                  cout << sum + a[i] - a[j] << endl;
                  if(sum + a[i] < a[j]) continue;
                  ans = max(ans, res);
            }
            for(int j = i; j <= n; j ++)
                  b[j] -= cb[i], c[j] -= cc[i];
      }

      cout << ans << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...