Submission #602227

#TimeUsernameProblemLanguageResultExecution timeMemory
602227TigryonochekkSnowball (JOI21_ho_t2)C++17
100 / 100
237 ms13088 KiB
#include <iostream> #include <algorithm> #include <cmath> #include <vector> #include <set> #include <map> #include <string> using namespace std; #define pll pair<long long, long long> const int N = 2e5 + 2; const long long inf = 1e18 + 49; int n, q; long long x[N]; long long w[N]; vector<pll> v; long long /*dif[N],*/ lef[N], rig[N]; long long ans[N]; int main() { cin >> n >> q; for (int i = 1; i <= n; i++) { cin >> x[i]; } long long mx = 0, mn = 0; for (int i = 1; i <= q; i++) { cin >> w[i]; w[i] += w[i - 1]; mn = min(w[i], mn); mx = max(w[i], mn); } for (int i = 1; i < n; i++) { v.push_back(pll(x[i + 1] - x[i], i)); } sort(v.begin(), v.end()); int pnt = 0; long long cmx = 0, cmn = 0; for (int i = 1; i <= q; i++) { cmx = max(cmx, w[i]); cmn = min(cmn, w[i]); long long cur = cmx - cmn; while (pnt < v.size() && cur >= v[pnt].first) { long long dif = v[pnt].first; int ind = v[pnt].second; if (w[i] < 0) { lef[ind] = cmx; rig[ind] = dif - cmx; } else { rig[ind] = -cmn; lef[ind] = dif + cmn; } pnt++; } } for (; pnt < v.size(); pnt++) { int ind = v[pnt].second; lef[ind] = cmx; rig[ind] = -cmn; } ans[1] += -cmn; ans[n] += cmx; for (int i = 1; i < n; i++) { ans[i] += lef[i]; ans[i + 1] += rig[i]; } for (int i = 1; i <= n; i++) { cout << ans[i] << " "; } cout << endl; return 0; }

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:42:14: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   42 |   while (pnt < v.size() && cur >= v[pnt].first) {
      |          ~~~~^~~~~~~~~~
Main.cpp:56:13: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   56 |  for (; pnt < v.size(); pnt++) {
      |         ~~~~^~~~~~~~~~
Main.cpp:25:12: warning: variable 'mx' set but not used [-Wunused-but-set-variable]
   25 |  long long mx = 0, mn = 0;
      |            ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...