Submission #660158

#TimeUsernameProblemLanguageResultExecution timeMemory
660158beepbeepsheepPilot (NOI19_pilot)C++17
100 / 100
325 ms36684 KiB

#include <bits/stdc++.h>

using namespace std;
#define ll long long
#define endl '\n'
typedef pair<ll,ll> ii;
const ll inf=1e15;
const ll mod=1e9+7;
const ll maxn=1e6+5;

ll ans[maxn];
ll arr[maxn];
stack<ll> s;
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    s.push(0);
    ll n,q,ele;
    cin>>n>>q;
    for (int i=1;i<=n;i++){
        cin>>arr[i];
    }
    arr[0]=inf;
    arr[n+1]=inf;
    for (int i=1;i<=n+1;i++){
        while (arr[s.top()]<arr[i]){
            ll a=s.top();
            s.pop();
            ans[arr[a]]+=(i-s.top()-1)*(i-s.top())/2;
            if (i==n+1 && s.top()==0) break;
            ans[min(arr[i],arr[s.top()])]-=(i-s.top()-1)*(i-s.top())/2;
        }
        s.push(i);
    }
    for (int i=1;i<=maxn;i++){
        ans[i]+=ans[i-1];
    }
    for (int i=0;i<q;i++){
        cin>>ele;
        cout<<ans[ele]<<endl;
    }
    return 0;
}

Compilation message (stderr)

pilot.cpp: In function 'int main()':
pilot.cpp:37:15: warning: iteration 1000004 invokes undefined behavior [-Waggressive-loop-optimizations]
   37 |         ans[i]+=ans[i-1];
      |         ~~~~~~^~~~~~~~~~
pilot.cpp:36:19: note: within this loop
   36 |     for (int i=1;i<=maxn;i++){
      |                  ~^~~~~~
#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...