Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
32738 | 郭澍宇 | 【J】ask | C++ | 通过 | 100 | 82 MS | 82380 KB | 779 | 2024-09-29 14:43:09 |
#include<bits/stdc++.h> using namespace std; int n,q; long long t[105],st[250005][105],a[250005],ans =0,k,op,b; int main(){ cin>>n>>q; for(int i = 1;i<=n;i++){ cin>>a[i]; t[a[i]]++; for(int k = 1;k<=100;k++){ st[i][k]=t[k]; } } for(int i = 1;i<=n;i++){ for(int j =a[i]+1;j<=100;j++){ ans+=st[i][j]; } } while(q--){ scanf("%lld",&op); if(op==2){ t[a[n]]--; for(int i = 1;i<=100;i++){ if(a[n]<i){ ans-=st[n][i]; } st[n][i]=0; } a[n]=0; n--; } if(op==1){ scanf("%lld",&k); n++; a[n]=k; t[a[n]]++; st[n][a[n]]=1; for(int i = 1;i<=100;i++){ st[n][i]+=st[n-1][i]; if(a[n]<i){ ans+=st[n][i]; } } } printf("%lld\n",ans); } }