Submission #1142792

#TimeUsernameProblemLanguageResultExecution timeMemory
1142792bestbestPilot (NOI19_pilot)C++20
0 / 100
1094 ms11096 KiB
#include <bits/stdc++.h>
using namespace std;
#define  en '\n'
#define  sp ' '
typedef long long ll;
#define Linux ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define pii pair<int,int>

const int N=1e6+10;
int n,Q;
int h[N],y,qs[N];
priority_queue<pii,vector<pii>,greater<pii>> q;
vector<int> v;
unordered_set<int> s;
int ans[N];
int main(){Linux
    cin >> n >> Q;
    for(int i=1;i<=n;i++)
    {
        cin >> h[i];
        s.insert(h[i]);
        
    }
    for(int i=1;i<N;i++){
        qs[i]=qs[i-1]+i;
    }

    for(auto i:s){
        //cout << i << sp;
        q.push({i,1});
    }
    //cout << endl;
    h[n+1]=1e6+1;
    for(int i=1;i<=n+1;i++){
        while (!q.empty() && q.top().first<h[i])
        {
            ans[q.top().first]+=qs[i-q.top().second];
            v.push_back(q.top().first);
            // cout << i << "pop" << q.top().first << sp << q.top().second << sp;
            // cout << qs[i-q.top().second] << en;
            q.pop();
        }
        for(int k:v)q.push({k,i+1});
        v.clear();
        
    }
    // for(int i=1;i<=s.size();i++)cout << ans[i] << sp;
    // cout << en;

    for(int i=1;i<=n;i++)if(!ans[i])ans[i]=ans[i-1];

    int cnt,sum;
    while(Q--){
        cnt=0,sum=0;
        cin >> y;
        cout << ans[y] << en;
    }

    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...