제출 #682030

#제출 시각아이디문제언어결과실행 시간메모리
682030YENGOYAN금 캐기 (IZhO14_divide)C++17
0 / 100
1 ms320 KiB
/* //\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\\ \\ // // 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(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...