Submission #291485

#TimeUsernameProblemLanguageResultExecution timeMemory
291485crossing0verDischarging (NOI20_discharging)C++17
11 / 100
847 ms18040 KiB
#include<bits/stdc++.h>
#define int long long
#define ll long long
#define fi first
#define se second
#define pii pair<int,int>
#define vi vector<int>
using namespace std;
const int N = 1e6+6;
ll ans;
int n,arr[N];
main() {
    cin >> n;
    int tot = n;
    for (int i = 1; i <= n; i++)
            cin >> arr[i];
    int mx = 0,k = 0,block = 0;
    for (int i = 1; i <= n; i++) {
          //  block++;
        if (tot*mx <= block*arr[i]) {
            block = 0;
            k += arr[i];
            tot = n - i+1;
            ans += k;
        }
        else {
            if (mx < arr[i]) {
                    ans += (arr[i] - mx)*(block+1);
                    ans += mx;
                    k += arr[i] - mx;
                    mx = arr[i];
                    }
            else ans += k;

       // if (mx < arr[i]) mx = arr[i], k += arr[i] - mx;
        }
        mx = max(mx,arr[i]);
     //  ans += k;
        block++;
    }
    cout << ans;

}

Compilation message (stderr)

Discharging.cpp:12:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   12 | main() {
      |      ^
#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...