Submission #1187089

#TimeUsernameProblemLanguageResultExecution timeMemory
1187089ulvixPilot (NOI19_pilot)C++20
55 / 100
1095 ms1376 KiB
#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 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...