Submission #123668

#TimeUsernameProblemLanguageResultExecution timeMemory
123668dolphingarlicLightning Conductor (POI11_pio)C++14
45 / 100
60 ms9980 KiB
#include <bits/stdc++.h> #pragma GCC Optimize("O3") #define FOR(i, x, y) for (ll i = x; i < y; i++) #define MOD 1000000007 typedef long long ll; using namespace std; ll h[300000], dp[300000]; double calc(ll k, ll i) { return h[k] + sqrt(abs(i - k)); } int main() { iostream::sync_with_stdio(false); cin.tie(0); ll n; cin >> n; FOR(i, 0, n) { cin >> h[i]; dp[i] = h[i]; } deque<ll> q; q.push_back(0); FOR(i, 1, n) { while (q.size() > 1 && calc(q[0], i) <= calc(q[1], i)) q.pop_front(); dp[i] = max(dp[i], (ll)ceil(calc(q[0], i))); if (h[i] > h[q.back()]) q.push_back(i); } q.clear(); q.push_back(n - 1); for (ll i = n - 1; i >= 0; i--) { while (q.size() > 1 && calc(q[0], i) <= calc(q[1], i)) q.pop_front(); dp[i] = max(dp[i], (ll)ceil(calc(q[0], i))); if (h[i] > h[q.back()]) q.push_back(i); } FOR(i, 0, n) cout << dp[i] - h[i] << '\n'; return 0; }

Compilation message (stderr)

pio.cpp:2:0: warning: ignoring #pragma GCC Optimize [-Wunknown-pragmas]
 #pragma GCC Optimize("O3")
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...