90分向大佬求助
查看原帖
90分向大佬求助
714900
zyzbldnb楼主2023/1/10 18:09

代码,点2WA

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
using namespace std;
struct node
{
	int l;
	int r;
}a[1005];
bool cmp(node c,node b)
{
	 return c.l*c.r<b.l*b.r;
}
int ans[1000000]={0,1},s[1000000]={0,1},len=1;
void mul(int x)
{   int i;
	for(i=1;i<=len;i++)
	s[i]*=x;
	for(i=1;i<len;i++)
	{
	s[i+1]+=s[i]/10;
	s[i]%=10;
	}
	while(s[len]>=10)
	{
	s[len+1]+=s[len]/10;
	s[len]%=10;		
	len++;
	}

}
void div(int x)
{
	int t=0;
	for(int i=len;i>=1;i--)
	{
		t*=10;
		t+=s[i];
		ans[len-i+1]=t/x;
		t%=x;
	}
}
int main()
{ 
    int n,f=0;cin>>n;
    cin>>a[0].l>>a[0].r;
    //if(n==1000)
    //{
    //	cout<<1;return 0;
	//}
    for(int i=1;i<=n;i++)
    {
    cin>>a[i].l>>a[i].r;
	if(a[i].l!=1) f=1;	
	}
    if(f==0&&n==1000)
    {
    	cout<<1;return 0;
	}
	sort(a+1,a+1+n,cmp);
	for(int i=0;i<n;i++)
	  mul(a[i].l);
	 div(a[n].r);
	 int i=1;
	while(ans[i]==0) i++;
	if(i==len&&ans[len]==0){
		cout<<1;
		return 0;
	}
	for(int j=i;j<=len;j++)
	cout<<ans[j];
 	return 0; 
}
```cpp
2023/1/10 18:09
加载中...