Submission #960845

#TimeUsernameProblemLanguageResultExecution timeMemory
960845Zero_OPLightning Conductor (POI11_pio)C++14
100 / 100
691 ms14036 KiB
#include<bits/stdc++.h>

using namespace std;

int ceil_sqrt(int n){
    int x = sqrt(n);
    while(x * x < n) ++x;
    return x;
}

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    int n; cin >> n;
    vector<int> h(n);
    for(int i = 0; i < n; ++i){
        cin >> h[i];
    }

    vector<int> p(n);
    for(int i = 0, cur = 0; i < n; ++i){
        for(int k = 1; i - (k - 1) * (k - 1) - 1 >= 0; ++k){
           cur = max(cur, h[i - (k - 1) * (k - 1) - 1] + k);
        }
        p[i] = max(p[i], cur);
    }

    for(int i = n - 1, cur = 0; i >= 0; --i){
        for(int k = 1; i + (k - 1) * (k - 1) + 1 < n; ++k){
            cur = max(cur, h[i + (k - 1) * (k - 1) + 1] + k);
        }
        p[i] = max(p[i], cur);
    }

    for(int i = 0; i < n; ++i){
        cout << max(0, p[i] - h[i]) << '\n';
    }
    
    return 0;
}
#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...