60分求助,WA,可能是高精的问题,但是调不出来
查看原帖
60分求助,WA,可能是高精的问题,但是调不出来
95170
Tune_楼主2022/8/4 21:27

评测记录

可能是高精的问题,但是调不出来

#include<bits/stdc++.h>
using namespace std;
int n;
string ans="0";
struct data
{
	int l,r;
}a[10005];
bool cmp(data x,data y)
{
	return x.l*x.r<y.l*y.r;
}
string mul(string x,int y)
{
	int k=0;
	string s;
	for(int i=x.size()-1;i>=0;i--)
	{
		int t=x[i]-'0';
		t*=y;
		t+=k;
		s=(char)((t%10)+'0')+s;
		k=t/10;
	}
	if(k!=0)
		s=(char)(k+'0')+s;
	return s;
}
string div(string x,int y)
{
	int k=0;
	bool f=0;
	string s;
	for(int i=0;i<x.size();i++)
	{
		k=k*10+(x[i]-'0');
		if(k/y>0)
			f=1;
		if(f)
			s+=(char)(k/y+'0');
		k%=y;
	}
	return s;
}
int main()
{
	freopen("1.in","r",stdin); 
	scanf("%d%d%d",&n,&a[0].l,&a[0].r);
	for(int i=1;i<=n;i++)
		scanf("%d%d",&a[i].l,&a[i].r);
	sort(a+1,a+n+1,cmp);
	string p="1";
	for(int i=0;i<=n;i++)
	{
		string t=div(p,a[i].r);
		if((t.size()>ans.size())||(t.size()==ans.size()&&t>ans))
			ans=t;
		p=mul(p,a[i].l);
	}
	cout<<ans;
	return 0;
}
2022/8/4 21:27
加载中...