从头RE到尾
这辈子也想不明白
#include<bits/stdc++.h>
using namespace std;
long long num,Q,x,v,ans;
struct cp{
long long a;
int b;//前面有几个一样的元素
}n[8005];
int bt[50000005]; //桶排
int key,sum=1;
int main()
{
scanf("%lld%lld",&num,&Q);
for(long long i=1;i<=num;i++)
{
scanf("%lld",&n[i].a);
n[i].b=bt[n[i].a];
//前面每有一个重复的就记录一次
bt[n[i].a]++;
}
for(long long i=1;i<=Q;i++)
{
scanf("%d",&key);
if(key==1)
{
scanf("%lld%lld",&x,&v);
//把 a[x] 改为 v
bt[n[x].a]--;
n[x].b=bt[v];
bt[v]++;
n[x].a=v;
continue;
}
if(key==2)
{
scanf("%lld",&x);
ans=n[x].a;
sum=sum+n[x].b;
for(long long j=1;j<=num;j++)
{
if(n[j].a<ans) sum++;
}
printf("%d\n",sum);
sum=1;
}
}
return 0;
}