提交时间:2024-09-29 14:41:48

运行 ID: 32737

#include<bits/stdc++.h> using namespace std; int n,q; long long t[105],st[250005][105],a[250005],ans =0; 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--){ int op,b; 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){ int k; 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); } }