제출 #624209

#제출 시각아이디문제언어결과실행 시간메모리
624209PoonYaPatPilot (NOI19_pilot)C++14
89 / 100
1088 ms137076 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; int n,qu; ll ans[1000001],sum; vector<int> h[1000001],q[1000001]; set<int> s; ll cal(ll x) { return x*(x+1)/2; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin>>n>>qu; s.insert(0); s.insert(n+1); for (int i=1; i<=n; ++i) { int a; cin>>a; h[a].push_back(i); } for (int i=1; i<=qu; ++i) { int a; cin>>a; q[a].push_back(i); } sum=cal(n); for (int i=1000000; i>0; --i) { for (auto s : q[i]) ans[s]=sum; for (auto j : h[i]) { auto it=s.upper_bound(j); int r=*it, l=*(--it); sum-=cal(r-l-1); sum+=cal(j-l-1); sum+=cal(r-j-1); s.insert(j); } } for (int i=1; i<=qu; ++i) cout<<ans[i]<<"\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...