Submission #671833

#TimeUsernameProblemLanguageResultExecution timeMemory
671833moday_morningDivide and conquer (IZhO14_divide)C++17
100 / 100
35 ms5980 KiB
#include <bits/stdc++.h> #define int long long #define fr first #define sc second #define pb push_back using namespace std; const int INF = 1'000'000'000'000'000'000LL; void usaco(string s) { freopen((s + ".in").c_str(), "r", stdin); freopen((s + ".out").c_str(), "w", stdout); } void solve() { int n; cin >> n; int x[n+1], g[n+1], d[n+1]; d[0] = 0; g[0] = 0; for (int i = 1; i <= n; i++) { cin >> x[i] >> g[i] >> d[i]; d[i] += d[i-1]; g[i] += g[i-1]; } vector <pair <int, int>> a, b; a.pb({-INF, -INF}); b.pb({-INF, -INF}); for(int i = 1; i <= n; i++) { a.pb({d[i] - x[i], g[i]}); b.pb({d[i-1] - x[i], - g[i-1]}); } sort(a.begin(), a.end()); sort(b.begin(), b.end()); int sb = -INF, res = 0, ans = 0, cnt = 0; for (ans = 1; ans <= n; ans++) { while (cnt+1 <= n && b[cnt+1].fr <= a[ans].fr) { cnt++; sb = max(sb, b[cnt].sc); } res = max(res, a[ans].sc + sb); } cout << res << "\n"; } signed main() { // usaco("triangles"); ios_base::sync_with_stdio(false); cin.tie(NULL); int t = 1; // cin >> t; while (t--) { solve(); } }

Compilation message (stderr)

divide.cpp: In function 'void usaco(std::string)':
divide.cpp:10:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   10 |     freopen((s + ".in").c_str(), "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
divide.cpp:11:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   11 |     freopen((s + ".out").c_str(), "w", stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...