lj新人求助(7WA3AC)
查看原帖
lj新人求助(7WA3AC)
402064
kangjingcheng楼主2021/8/27 23:27
#include<bits/stdc++.h>
using namespace std;
int up(double a)
{
	if(a>int(a))
	{
		return int(a)+1;
	}
	return int(a);
}
int main()
{
	long long n;
	cin>>n;
	long long m1,m2;
	cin>>m1>>m2;
	long long cells[n];
	for(int a=0;a<n;a++)
	{
		cin>>cells[a];
	}
	if(m1==1||m2==0)
	{
		cout<<0;
		return 0;
	}
	long long zys[30000]={};
	int m3=m1,maxs;
	for(int a=2;a<=m1;a++)
	{
		if(m3<a)
		{
			maxs=a;
			break;
		}
		while(m3%a==0)
		{
			m3/=a;
			zys[a]+=m2; 
		}
	}
	double max=-1;
	for(int a=0;a<n;a++)
	{
		double smax=-1,t=1;
		for(int b=0;b<maxs;b++)
		{
			if(zys[b]==0)
			{
				continue;
			}
			if(cells[a]%b==0)
			{
				int h=cells[a];
				int t=0;
				while(h%b==0)
				{
					h/=b;
					t++;
				}
				if(zys[b]/1.0/t>smax)
				{
					smax=zys[b]/1.0/t;
				}
				continue;
			}
			t=0;
		}
		if(t)
		{
			if(max<smax)
			{
				max=smax;
			}
		}
		else
		{
			continue;
		}
	}
	if(max==-1)
	{
		cout<<max;
		return 0;
	}
	cout<<up(log(up(max+1)));
}

1,3,6过了,其他全部wa 测试的时候第2个直接输入之后没反应(可以继续输入数据,不是程序卡)

2021/8/27 23:27
加载中...