Submission #1093074

#TimeUsernameProblemLanguageResultExecution timeMemory
1093074SebPotatoes and fertilizers (LMIO19_bulves)C++17
100 / 100
147 ms11200 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> using namespace __gnu_pbds; using namespace std; template <typename T> //order_of_key = menores, find_by_order = consultar indexado en 0, regresa iterador using ordered_set = tree<T, null_type, less_equal<T>, rb_tree_tag, tree_order_statistics_node_update>; using ll = long long; using ld = long double; using pii = pair<int, int>; using pll = pair<ll, ll>; using vll = vector<ll>; using vii = vector<int>; mt19937_64 rnd(chrono::steady_clock::now().time_since_epoch().count()); #define mid ((l+r)>>1) #define f first #define s second #define pb push_back #define MP make_pair #define all(x) (x).begin(),(x).end() #define inicio(x) (*(x).begin()) #define rinicio(x) (*(x).rbegin()) #define SZ(x) (int)(x.size()) const ll MAXN = (ll)3e3 + 5; const ll MAXK = (ll)3e4 + 5; const ll MOD = (ll)1e9 + 7; const ll INF = (ll)1e12 + 5; const ll OFFSET = (ll)1e6; priority_queue<ll> pq; ll sum, brute, M, ans, pre; void tc() { ll N; cin >> N; for (int i = 0; i < N; i++) { ll a, b; cin >> a >> b; a -= b; sum += a; brute += abs(sum); pq.push(sum); pq.push(sum); if (i < N - 1) pq.pop(); } M = 2; pq.push(sum); pq.push(0); while (!pq.empty() && pq.top() > sum) { pq.pop(); M--; } pre = pq.top(); while (!pq.empty() && pq.top() >= 0) { ans -= M*abs(pre - pq.top()); M--; pre = pq.top(); pq.pop(); } cout << brute - ans << "\n"; return; } int main() { ios_base::sync_with_stdio(0);cin.tie(0); int t = 1; //cin >> t; for (int i = 1; i <= t; i++) { tc(); } return 0; } //checa tus constantes, n = 1? overflow?
#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...