Submission #1187092

#TimeUsernameProblemLanguageResultExecution timeMemory
1187092ulvixPilot (NOI19_pilot)C++20
78 / 100
1095 ms2120 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]; } bool u=is_sorted(all(v)); while(q--){ ll a; cin>>a; ll mx=0; ll ans=0; ll sum=0; if(!u){ 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...