0分求调,码风良好
查看原帖
0分求调,码风良好
1198173
zhuangzihao_20121127楼主2025/1/22 18:52

一个tle,其他wa

#include<bits/stdc++.h>
using namespace std;
long long n,m1,m2,ma=INT_MIN;
long long sum,a[55555],k=-1,t[55555],o[55555],x,y,ym,xm,ijfedfj;
int main(){
	cin>>n>>m1>>m2;
	int f=2;
	int w=0;
	while(m1>1){
		if(m1%f!=0){
			f++;
			x=f;
			continue;
		}
		if(w==0){
			x=f;
			xm=f;
		}
		w=1;
		m1/=f;
		o[f]++;
	}
//	cout<<xm<<" "<<x;
	for(int i=xm;i<=x;i++){
		cout<<o[i]<<" "<<i<<endl;
	}
	for(int i=1;i<=n;i++){
		cin>>a[i];
		int b=a[i];
		int f=2;
		int w=0;
		memset(t,0,sizeof(t));
		while(b>1){
			if(b%f!=0){
				f++;
				y=f;
				continue;
			}
			if(w==0){
				y=f;
				ym=f;
			}
			w=1;
			b/=f;
			t[f]++;
		}
		if(x!=y || xm!=ym){
			continue;
		}
		for(int u=xm;u<=x;u++){
			if((t[u]==0 && o[u]!=0)||(t[u]!=0 && o[u]==0)){
				continue;
			}
		}
		if(i==1 && n==1){
			cout<<1<<endl;
			return 0;
		}
		k=0;
		for(int u=ym;u<=y;u++){
			if(t[u]>ma){
				ma=t[u];
				ijfedfj=i;
			}
//			cout<<i<<" ";
		}
	}
	if(k==-1){
		cout<<-1<<endl;
		return 0;
	}
	cout<<ijfedfj<<endl;
	return 0;
}
2025/1/22 18:52
加载中...