Submission #882385

#TimeUsernameProblemLanguageResultExecution timeMemory
882385RequiemPotatoes and fertilizers (LMIO19_bulves)C++17
100 / 100
124 ms24868 KiB
#include<bits/stdc++.h> #define int long long #define pb push_back #define fast ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr); #define MOD 1000000007 #define INF 1e18 #define fi first #define se second #define endl "\n" #define FOR(i,a,b) for(int i=a;i<=b;i++) #define FORD(i,a,b) for(int i=a;i>=b;i--) #define sz(a) ((int)(a).size()) #define pi 3.14159265359 #define TASKNAME "bulves" template<typename T> bool maximize(T &res, const T &val) { if (res < val){ res = val; return true; }; return false; } template<typename T> bool minimize(T &res, const T &val) { if (res > val){ res = val; return true; }; return false; } using namespace std; typedef pair<int,int> ii; typedef pair<int,ii> iii; typedef vector<int> vi; const int MAXN = 5e5 + 9; int n; int a[MAXN],b[MAXN],A,B; namespace sub1 { void solve(){ int ans = 0, bring = 0; for(int i=1;i<=n;i++){ ans += abs(bring); if (a[i] == b[i]) continue; if (a[i] < b[i]) bring -= b[i] - a[i]; else bring += a[i] - b[i]; } } } namespace sub5{ int dif[MAXN]; void solve(){ priority_queue<int> pq; int ans = 0; int d = 0; for(int i=1;i<=n;i++){ dif[i] = dif[i-1] + a[i] - b[i]; // cout<<dif[i]<<' '; } // cout<<endl; if (dif[1] < 0) ans -= dif[1], dif[1] = 0; if (dif[1] > dif[n]) ans += dif[1] - dif[n], dif[1] = dif[n]; pq.push(dif[1]); for(int i=2;i<n;i++){ if (dif[i] < 0) ans -= dif[i], dif[i] = 0; if (dif[i] > dif[n]) ans += dif[i] - dif[n], dif[i] = dif[n]; if (dif[i] > pq.top()){ pq.push(dif[i]); } else{ pq.push(dif[i]); pq.push(dif[i]); ans += pq.top() - dif[i]; pq.pop(); } } cout<<ans<<endl; } } main() { fast; if (fopen(TASKNAME".inp","r")){ freopen(TASKNAME".inp","r",stdin); freopen(TASKNAME".out","w",stdout); } cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]>>b[i]; A += a[i]; B += b[i]; } assert(A >= B); sub5::solve(); }

Compilation message (stderr)

bulves.cpp: In function 'void sub5::solve()':
bulves.cpp:40:13: warning: unused variable 'd' [-Wunused-variable]
   40 |         int d = 0;
      |             ^
bulves.cpp: At global scope:
bulves.cpp:66:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   66 | main()
      | ^~~~
bulves.cpp: In function 'int main()':
bulves.cpp:70:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   70 |         freopen(TASKNAME".inp","r",stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
bulves.cpp:71:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   71 |         freopen(TASKNAME".out","w",stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...