Submission #114635

#TimeUsernameProblemLanguageResultExecution timeMemory
114635maruiiCandies (JOI18_candies)C++14
0 / 100
0 ms512 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using pli = pair<ll, int>; #define ff first #define ss second int L[200005], R[200005]; ll A[200005], ans; bool used[200005]; priority_queue<pli> pq; int main() { ios_base::sync_with_stdio(0), cin.tie(0); int N; cin >> N; for (int i = 1; i <= N; ++i) cin >> A[i], pq.emplace(A[i], i); iota(L + 1, L + N + 1, 0); iota(R, R + N + 2, 1); for (int i = 0; i < (N + 1 >> 1); ++i) { while (used[pq.top().ss]) pq.pop(); int x = pq.top().ss; pq.pop(); used[L[x]] = used[R[x]] = 1; ans += A[x]; A[x] = A[L[x]] + A[R[x]] - A[x]; if (L[x] && R[x] <= N) pq.emplace(A[x], x); L[x] = L[L[x]]; R[L[x]] = x; R[x] = R[R[x]]; L[R[x]] = x; cout << ans << '\n'; } return 0; }

Compilation message (stderr)

candies.cpp: In function 'int main()':
candies.cpp:20:25: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
  for (int i = 0; i < (N + 1 >> 1); ++i) {
                       ~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...