#include <bits/stdc++.h>
using namespace std;
int n,q;
int a[8005],b[2005];
int main()
{
cin>>n>>q;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=1;i<=n;i++)
{
int cnt=0;
for(int j=1;j<=i;j++)
{
if(a[j]<=a[i])
{
cnt++;
}
}
for(int j=i+1;j<=n;j++)
{
if(a[j]<a[i])
{
cnt++;
}
}
b[i]=cnt;
}
while(q--)
{
int num,x,v;
cin>>num>>x;
if(num==1)
{
cin>>v;
int ans=0;
for(int i=1;i<x;i++)
{
if(a[i]<=v)
{
ans++;
}
if(a[i]<=a[x]&&a[i]>v)
{
b[i]++;
}
if(a[i]>a[x]&&a[i]<=v)
{
b[i]--;
}
}
for(int i=x+1;i<=n;i++)
{
if(a[i]<v)
{
ans++;
}
if(a[i]<a[x]&&a[i]>=v)
{
b[i]++;
}
if(a[i]>=a[x]&&a[i]<v)
{
b[i]--;
}
}
b[x]=ans+1;
a[x]=v;
}
else
{
cout<<b[x]<<endl;
}
}
}
下面是标准程序
#include<bits/stdc++.h>
using namespace std;
int n,q;
int a[8005],rk[8005];
int main()
{
cin >> n >> q;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
for (int i = 1; i <= n; i++) {
int cnt = 0;
for (int j = 1; j <= i; j++) {
if (a[j] <= a[i]) {
cnt++;
}
}
for (int j = i + 1; j <= n; j++) {
if (a[j] < a[i]) {
cnt++;
}
}
rk[i] = cnt;
}
while (q--) {
int num,x,v;
cin >> num >> x;
if (num == 1) {
cin >> v;
int cnt = 0;
for (int i = 1; i < x; i++) {
if (a[i] <= v) cnt++;
if (a[i] <= a[x] && a[i] > v) rk[i]++;
if (a[i] > a[x] && a[i] <= v) rk[i]--;
}
for (int i = x + 1; i <= n; i++) {
if (a[i] < v) cnt++;
if (a[i] < a[x] && a[i] >= v) rk[i]++;
if (a[i] >= a[x] && a[i] < v) rk[i]--;
}
rk[x] = cnt + 1;
a[x] = v;
} else {
cout << rk[x] << endl;
}
}
return 0;
}