只有10分,A第一个点,大佬求助
查看原帖
只有10分,A第一个点,大佬求助
697359
jennycai13楼主2024/4/17 16:29
#include<bits/stdc++.h>
using namespace std;
const int N=1e3+5,M=1e7+5;
int ans[M],c[N];
int b[N],n,lena;//a[0],b[0]表示国王的 
struct X{
	int l,r;
}x[N];

bool cmp(X p,X q)
{
	if(p.l==q.l)return p.r<q.r;
	else return p.l<q.l;
}

void chengfa(int a[],int b)
{
	for(int i=0;i<lena;i++)
	{
		a[i]*=b;
	}
	for(int i=0;i<lena;i++)
	{
		a[i+1]+=a[i]/10;
		a[i]%=10;
	}
	while(a[lena])
	{
		a[lena+1]=a[lena]/10;
		a[lena]%=10;
		lena++;
	}
}

void chufa(int a[],int b)
{
	int sum=0;
	for(int i=0;i<lena;i++)
	{
		c[i]=(sum*10+a[i])/b;
		sum=(sum*10+a[i])%b;
	}
	int lenc=0;
	while(c[lenc]==0 and lenc<lena)
	{
		lenc++;
	}
	for(int i=lenc;i<lena;i++)
	{
		cout<<c[i];
	}
}
int main()
{
	cin>>n>>x[0].l>>x[0].r;
	for(int i=1;i<=n;i++)cin>>x[i].l>>x[i].r;
	sort(x+1,x+1+n,cmp);
	int k=0;
	for(int i=0;i<n;i++)
	{
		if(i==0)
		{
			while(x[i].l>0)
			{
				ans[k++]=(x[i].l%10);
				x[i].l/=10;
			}
			lena=k--;
			continue;
		}
		chengfa(ans,x[i].l);
		//ans=ans*x[i].l;
	}
	chufa(ans,x[n].r);
}
2024/4/17 16:29
加载中...