/*
//\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\\
\\ //
// 271828___182845__904523__53602__ \\
\\ 87___47____13______52____66__24_ //
// 97___75____72______47____09___36 \\
\\ 999595_____74______96____69___67 //
// 62___77____24______07____66__30_ \\
\\ 35___35____47______59____45713__ //
// \\
\\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\//
*/
#include <iostream>
#include <vector>
#include <set>
#include <map>
#include <unordered_map>
#include <unordered_set>
#include <cmath>
#include <climits>
#include <algorithm>
#include <random>
#include <queue>
#include <deque>
#include <iomanip>
#include <string>
#include <tuple>
#include <bitset>
#include <chrono>
#include <ctime>
#include <fstream>
#include <stack>
#include <cstdio>
using namespace std;
using ll = long long;
const int N = 3e5 + 5;
const ll mod = 1e9 + 7, inf = LLONG_MAX;
struct camp {
int x, g, d;
};
void solve() {
// pref_en[r] - pref_en[l - 1] >= x[r] - x[l - 1]
// pref_en[r] - x[r] >= pref_en[l - 1] - x[l - 1]
int n; cin >> n;
vector<camp> v(n);
for (int i = 0; i < n; ++i) {
cin >> v[i].x >> v[i].g >> v[i].d;
}
vector<ll> pref(n + 1);
for (int i = 1; i <= n; ++i) {
pref[i] = pref[i - 1] + v[i - 1].d;
}
vector<ll> pref_en(n + 1), gold(n + 1);
for (int i = 1; i <= n; ++i) {
pref_en[i] = pref[i] - v[i - 1].x;
gold[i] = gold[i - 1] + v[i - 1].g;
}
long long ans = 0;
//for (int i = 1; i <= n; ++i) cout << pref_en[i] << " \n"[i == n];
for (int i = 1; i <= n; ++i) {
ans = max(ans, v[i - 1].g * 1ll);
for (int j = i + 1; j <= n; ++j) {
if (pref_en[i - 1] <= pref_en[j]) ans = max(ans, gold[j] - gold[i - 1]);
}
}
cout << ans;
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(NULL);
//int t; cin >> t;
//while (t--)
solve();
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Incorrect |
1 ms |
320 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Incorrect |
1 ms |
320 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Incorrect |
1 ms |
320 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |