This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+5;
int n,q;
int p[N];
long long sz[N],ans[N];
long long sum=0;
bool vis[N];
vector<pair<int,int>> a,b;
int fp(int u){
if(u==p[u])return u;
return p[u]=fp(p[u]);
}
void merg(int u,int v){
u=fp(u),v=fp(v);
sum-=sz[u]*(sz[u]+1)/2;
sum-=sz[v]*(sz[v]+1)/2;
p[v]=u;
sz[u]+=sz[v];
sz[v]=0;
sum+=sz[u]*(sz[u]+1)/2;
}
int main(){
cin.tie(nullptr)->sync_with_stdio(false);
cin >> n >> q;
iota(p,p+n+1,0);
for(int i=1;i<=n;++i){
int x;
cin >> x;
a.emplace_back(x,i);
sz[i]=1;
}
for(int i=1;i<=q;++i){
int x;
cin >> x;
b.emplace_back(x,i);
}
sort(a.begin(),a.end());
sort(b.begin(),b.end());
int idx=0;
for(auto [h,i]:b){
while(idx<n && a[idx].first<=h){
vis[a[idx].second]=1;
++sum;
if(vis[a[idx].second-1])merg(a[idx].second-1,a[idx].second);
if(vis[a[idx].second+1])merg(a[idx].second+1,a[idx].second);
++idx;
}
ans[i]=sum;
}
for(int i=1;i<=q;++i)cout << ans[i] << '\n';
}
Compilation message (stderr)
pilot.cpp: In function 'int main()':
pilot.cpp:47:14: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
47 | for(auto [h,i]:b){
| ^| # | 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... |