为什么本地结果和在线ide的结果不同
查看原帖
为什么本地结果和在线ide的结果不同
539371
ONEM楼主2022/7/30 17:10

先放我的原程序

#include<stdio.h>
const long long MAX=1e9+7;
long long n,times[5003],max,ans;
int main(){
	scanf("%d",&n);
	for(int i=0;i<n;i++){
		int remain=0;
		scanf("%d",&remain);
		times[remain]++;
		if(i==0){
			max=remain;
		}
		else{
			max=max>remain?max:remain;
		}
	}
	for(int i=2;i<=max;i++){//边长 
		if(times[i]>=2){
			long long remain1=times[i]*(times[i]-1)/2%MAX;
			for(int j=1;j<=i/2;j++){
				if(times[j]&&times[i-j]){
					if(j==i-j&&times[j]>=2){
						ans=(ans+remain1*times[j]*(times[j]-1)/2)%MAX;
					}
					else if(j!=i-j){
						ans=(ans+remain1*times[j]*times[i-j])%MAX;
					}
				
				}
			}
		}
	}
	printf("%lld",ans);
	return 0;
}

我刚写完提交发现前三个wa了,然后下载了第一个测试点的数据,第一个点的标准输出是77172185,我的本地dev输出是77172415,洛谷在线ide的输出是77172185,我真的不知道为什么,但是我之前在需要取模的题上好像遇到了类似情况,我怀疑是取模前溢出了,但是没有找到哪个地方,各位大佬可以帮我看看吗,十分感谢!

2022/7/30 17:10
加载中...