#include<bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define ll long long
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),rend()
const ll sz=1e6+100;
const ll mod=1e9+7;
const ll INF=1e18;
using namespace std;
using namespace __gnu_pbds;
template<class T>
using indexed_set=tree<T,null_type,less<T>,rb_tree_tag,tree_order_statistics_node_update>;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
ll n,q;
cin>>n>>q;
vector<ll> v(n);
for(ll i=0;i<n;i++){
cin>>v[i];
}
while(q--){
ll a;
cin>>a;
ll mx=0;
ll ans=0;
ll sum=0;
if(!is_sorted(all(v))){
for(ll i=0;i<n;i++){
mx=max(mx,v[i]);
if(mx<=a){
sum++;
}
else{
mx=0;
ans+=sum*(sum+1)/2;
sum=0;
}
}
ans+=sum*(sum+1)/2;
cout<<ans<<'\n';
}
else{
auto it=upper_bound(all(v),a);
cout<<(it-v.begin()+1)*(it-v.begin())/2<<'\n';
}
}
}
# | 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... |