这两代码有区别吗
查看原帖
这两代码有区别吗
1392485
ruguanqin2024楼主2025/7/28 15:59

TLE代码

#include<iostream>
#include<cstdio>
using namespace std;
int n,q,a[8001],op,x,v,num;
int main(){
	scanf("%d%d",&n,&q);
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
	}
	for(int i=1;i<=q;i++){
		cin>>op;
		if(op==1){
			scanf("%d%d",&x,&v);
			a[x]=v;
		}else{
			scanf("%d",&x);
			num=n;
			for(int j=1;j<x;j++){
				if(a[j]>a[x]){
					num--;
				}
			}
			for(int j=x+1;j<=n;j++){
				if(a[j]>=a[x]){
					num--;
				}
			}
			printf("%d\n",num);
		}
	}
	return 0;
}

AC代码
```cpp
#include<iostream>
#include<cstdio>
using namespace std;
int a[10011];
int main()
{
	int n,q;
	cin>>n>>q;
	for(int i=1;i<=n;i++)scanf("%d",&a[i]);
	for(int i=1;i<=q;i++){
		int xx;
		scanf("%d",&xx);
		if(xx==1){
			int x,v;
			scanf("%d%d",&x,&v);
			a[x]=v;
		} 
		else {
			int x;
			scanf("%d",&x);
			int w=a[x];
			int sum=n;
			for(int j=1;j<x;j++){
				if(a[j]>w){
					sum--;
				}
			}
			for(int j=x+1;j<=n;j++){
				if(a[j]>=w) sum--;
			}
			printf("%d\n",sum);
		}
	}
	return 0;
}

哪位大佬能给我解释一下

2025/7/28 15:59
加载中...