Submission #912427

#TimeUsernameProblemLanguageResultExecution timeMemory
912427andrei_iorgulescuSnowball (JOI21_ho_t2)C++14
100 / 100
77 ms15524 KiB
#include <bits/stdc++.h> using namespace std; #define int long long int inf = 1e18; int n,q,a[200005]; int minwind = 0,maxwind = 0,wind = 0; int lexp[200005],rexp[200005]; signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n >> q; for (int i = 1; i <= n; i++) cin >> a[i]; for (int i = 1; i <= n; i++) lexp[i] = rexp[i] = inf; vector<pair<int,int>>difs; for (int i = 1; i < n; i++) difs.push_back({a[i + 1] - a[i],i}); sort(difs.begin(),difs.end()); reverse(difs.begin(),difs.end()); for (int i = 1; i <= q; i++) { int x; cin >> x; wind += x; int mx = max(maxwind,wind); int mn = min(minwind,wind); int cur = mx - mn; while (!difs.empty() and difs.back().first <= cur) { int pos = difs.back().second; difs.pop_back(); int extr = a[pos] + maxwind,extl = a[pos + 1] + minwind; if (wind > 0) { lexp[pos + 1] = a[pos + 1] + minwind; rexp[pos] = lexp[pos + 1]; } else { rexp[pos] = a[pos] + maxwind; lexp[pos + 1] = rexp[pos]; } } maxwind = mx; minwind = mn; } for (int i = 1; i <= n; i++) { if (lexp[i] == inf) lexp[i] = a[i] + minwind; if (rexp[i] == inf) rexp[i] = a[i] + maxwind; } for (int i = 1; i <= n; i++) cout << rexp[i] - lexp[i] << '\n'; return 0; }

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:40:17: warning: unused variable 'extr' [-Wunused-variable]
   40 |             int extr = a[pos] + maxwind,extl = a[pos + 1] + minwind;
      |                 ^~~~
Main.cpp:40:41: warning: unused variable 'extl' [-Wunused-variable]
   40 |             int extr = a[pos] + maxwind,extl = a[pos + 1] + minwind;
      |                                         ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...