Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
32736 | 郭澍宇 | 【J】ask | C++ | 解答错误 | 80 | 85 MS | 82388 KB | 815 | 2024-09-29 14:40:15 |
#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; // cout<<q<<" "; scanf("%d",&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("%d",&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("%d\n",ans); } }