# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
44437 | 2018-04-02T07:16:50 Z | ssnsarang2023 | Candies (JOI18_candies) | C++17 | 3 ms | 504 KB |
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll, int> pli; const int N = (int)2e5+5; const ll oo = (ll)1e18+7ll; int n, nxt[N], pre[N]; ll a[N]; priority_queue<pli> pq; int main() { scanf("%d", &n); for (int i = 1; i <= n; ++i) { scanf("%lld", &a[i]); nxt[i] = i + 1, pre[i] = i - 1; pq.push(pli(a[i], i)); } ll ans = 0; for (int i = 1; i <= n + 1 >> 1; ++i) { for (; pq.top().first != a[pq.top().second]; pq.pop()); int x = pq.top().second, l = pre[x], r = nxt[x]; printf("%lld\n", ans += a[x]); pq.pop(); pre[nxt[x] = nxt[r]] = x; nxt[pre[x] = pre[l]] = x; a[x] = l && r ? max(-oo, a[l] + a[r] - a[x]) : -oo; a[l] = a[r] = -oo; pq.push(pli(a[x], x)); } return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 504 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 504 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |