#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;
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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |