Submission #336824

#TimeUsernameProblemLanguageResultExecution timeMemory
336824thecodingwizardPotatoes and fertilizers (LMIO19_bulves)C++11
20 / 100
355 ms748 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; #define ii pair<int, int> #define f first #define s second #define pb push_back #define mp make_pair #define all(x) x.begin(), x.end() #define sz(x) (int)x.size() #define F0R(i, n) for (int i = 0; i < n; i++) #define FOR(i, a, b) for (int i = a; i < b; i++) #define inf 1000000010 int dp[2][30001]; int diff[3000]; int main() { cin.tie(0)->sync_with_stdio(0); int n; cin >> n; assert(n <= 3000); ll totA = 0, totB = 0; F0R(i, n) { int a, b; cin >> a >> b; totA += a; totB += b; diff[i] = totA - totB; } assert(totA <= 30000 && totB <= 30000); F0R(i, n) { F0R(j, 30001) { dp[i%2][j] = min((i>0 ? dp[(i-1)%2][j] : 0) + abs(diff[i]-j), (j>0 ? dp[i%2][j-1] : inf)); } } cout << dp[(n-1)%2][diff[n-1]] << endl; return 0; }
#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...