Submission #1266361

#TimeUsernameProblemLanguageResultExecution timeMemory
1266361PlayVoltzPilot (NOI19_pilot)C++20
100 / 100
295 ms38872 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define pii pair<int, int> #define mp make_pair const int MAXN=1e6+5; int ans[MAXN], s[MAXN]; void merge(int val, int i){ if (!s[i]||!s[i+1])return; int l=i-s[i]+1, r=i+s[i+1]; ans[val]+=s[l]*s[r]; s[l]=s[r]=r-l+1; } int32_t main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, q, a; cin>>n>>q; vector <pii> vect(n+1); for (int i=1; i<=n; ++i){ cin>>vect[i].first; vect[i].second=i; } sort(vect.begin(), vect.end()); for (int i=1, j=1; i<=1e6; ++i){ ans[i]=ans[i-1]; for (;vect[j].first==i; ++j){ s[vect[j].second]=1; ++ans[i]; merge(i, vect[j].second-1); merge(i, vect[j].second); } } while (q--){ cin>>a; cout<<ans[a]<<"\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...