疑问:为什么几乎一样的代码得分不一样?
查看原帖
疑问:为什么几乎一样的代码得分不一样?
526826
extreme_point楼主2022/3/12 10:52

100分:

#include<iostream>
using namespace std;
int m,n;
int a[1000100],b[1000100],flag[1000100];
int test_flag(int x,int y){//判断x,y的大小,若相等返回原数 
	if(x>=y) return 1;
	else return 2;
}
int main(){
	cin>>n>>m;
	int x,y,time=0,ans=0;
	for(int i=1;i<=n;i++){//输入sh 
		cin>>x>>y;
		for(int j=1;j<=y;j++){
			a[j+time]=a[j+time-1]+x;
		}
		time+=y;
	}
	time=0;
	for(int i=1;i<=m;i++){//输入kc 
		cin>>x>>y;
		for(int j=1;j<=y;j++){
			b[j+time]=b[j+time-1]+x;
		}
		time+=y;
	}
	for(int i=1;i<=time;i++){//判断有多少次变动 
		flag[i]=test_flag(a[i],b[i]);
		if(flag[i-1]!=flag[i])
			ans++;
	}
	cout<<ans-1;
	return 0;
}

60分

#include<iostream>
using namespace std;
int m,n;
int a[1000100],b[1000100],flag[1000100];
int test_flag(int x,int y){//判断x,y的大小,若相等返回原数 
	if(x>=y) return 2;
	else return 0;
}
int main(){
	cin>>n>>m;
	int x,y,time=0,ans=0;
	for(int i=1;i<=n;i++){//输入sh 
		cin>>x>>y;
		for(int j=1;j<=y;j++){
			a[j+time]=a[j+time-1]+x;
		}
		time+=y;
	}
	time=0;
	for(int i=1;i<=m;i++){//输入kc 
		cin>>x>>y;
		for(int j=1;j<=y;j++){
			b[j+time]=b[j+time-1]+x;
		}
		time+=y;
	}
	for(int i=1;i<=time;i++){//判断有多少次变动 
		flag[i]=test_flag(a[i],b[i]);
		if(flag[i-1]!=flag[i])
			ans++;
	}
	cout<<ans-1;
	return 0;
}
2022/3/12 10:52
加载中...