发挥人类智慧。。。
查看原帖
发挥人类智慧。。。
750240
Hellsing_Alucard楼主2023/3/25 09:58

首先凭数学直觉,a[i]a[i] , a[j]a[j] , a[k]a[k],必须尽可能大,所以我们先排个序,然后暴力枚举n3n^3,时间快到了就break;能拿90分

ccf用脚造数据

#include<bits/stdc++.h>

using namespace std;

#define int long long

const int mod=1e8;

inline int read(){
	int u=0,f=1;char ch=getchar();
	while (ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}
	while (ch>='0'&&ch<='9'){u=u*10+ch-48;ch=getchar();}
	return u*f;
}
int n,a[200040],ans=0;
signed main(){
	n=read();
	for(int i=1;i<=n;i++)a[i]=read();
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			if(i==j)continue;
			if(a[i]+a[j]<ans)continue;
			for(int k=1;k<=n;k++){
				if((double)clock()/CLOCKS_PER_SEC>=0.98){
					printf("%lld",ans);
					return 0;
				}
				if(a[k]<=ans)continue;
				if(k==i||k==j)continue;
				ans=max(ans,(a[i]+a[j])%a[k]);
			}
		}
	}
	printf("%lld",ans);
    return 0;
}
2023/3/25 09:58
加载中...