Submission #252697

#TimeUsernameProblemLanguageResultExecution timeMemory
252697islingrVudu (COCI15_vudu)C++14
140 / 140
231 ms16248 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using ld = long double; #define rep(i, a, b) for (auto i = (a); i < (b); ++i) #define trav(e, x) for (auto &e : x) #define eb(x...) emplace_back(x) #define all(x) begin(x), end(x) #define sz(x) int((x).size()) template<class T> bool ckmin(T& a, const T& b) { return a > b ? a = b, 1 : 0; } template<class T> bool ckmax(T& a, const T& b) { return a < b ? a = b, 1 : 0; } const int N = 1 << 20; ll a[N], tmp[N]; ll solve(int l, int r) { if (r - l == 1) return 0; int m = l + r >> 1; ll res = solve(l, m) + solve(m, r); int i = l, j = m, k = l; while (i < m && j < r) if (a[i] <= a[j]) tmp[k++] = a[i++], res += r - j; else tmp[k++] = a[j++]; while (i < m) tmp[k++] = a[i++]; while (j < r) tmp[k++] = a[j++]; rep(i, l, r) a[i] = tmp[i]; return res; } signed main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; rep(i, 0, n) cin >> a[i + 1]; int P; cin >> P; rep(i, 0, n) a[i + 1] -= P; rep(i, 0, n) a[i + 1] += a[i]; cout << solve(0, n + 1); }

Compilation message (stderr)

vudu.cpp: In function 'll solve(int, int)':
vudu.cpp:21:12: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
  int m = l + r >> 1;
          ~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...