我的代码:(TLE)
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#define M 8005
using namespace std;
int n,Q,a[M];
int main(){
scanf("%d %d",&n,&Q);
for(int i=1;i<=n;i++){
scanf("%d",a+i);
}
for(int q=1,x,v,k,cnt;q<=Q;q++){
scanf("%d %d",&k,&x);
if(k==1){
scanf("%d",&v);
a[x]=v;
}else{
cnt=0;
for(int i=1;i<=n;i++){
if(a[i]<a[x]) cnt++;
if(a[i]==a[x]&&i<x) cnt++;
}
/*for(int j=x;j>=1;j--)if(a[j]<=a[x])cnt++;
for(int j=x+1;j<=n;j++)if(a[j]<a[x])cnt++;*/
printf("%d\n",cnt);
}
}
return 0;
}
另一个人的带代码:(AC)
#include<cstdio>
#include<algorithm>
#define N 8005
using namespace std;
int a[N],n,q;
int main(){
scanf("%d %d",&n,&q);
for(int i=1;i<=n;i++)scanf("%d",a+i);
for(int i=1,op,x,v,ans;i<=q;i++){
scanf("%d %d",&op,&x);
if(op==2){
ans=0;
for(int j=x;j>=1;j--)if(a[j]<=a[x])ans++;
for(int j=x+1;j<=n;j++)if(a[j]<a[x])ans++;
printf("%d\n",ans);
}
else{
scanf("%d",&v);
a[x]=v;
}
}
return 0;
}
这有什么不一样吗,为什么我就76分?