蓝名蒟蒻求指正
查看原帖
蓝名蒟蒻求指正
1035613
zhang_hao_zhe楼主2023/10/6 10:58
#include<bits/stdc++.h>
using namespace std;
long long ansf,anse;
int n;
long long f(long long x,long long y)
{
	long long maxx=max(x,y),minn=min(x,y);
	for(int i=1;i;i++)
	{
		long long p=maxx*i;
		if(!(p%minn))
			return p;
	}
}
long long g(long long x,long long y)
{
	long long maxx=max(x,y),minn=min(x,y);
	if(maxx%minn==0)
		return minn;
	for(long long i=sqrt(minn);i>=1;i--)
		if(minn%i==0 && maxx%i==0)
			return i;
	return 1ll;
}
int main()
{
	scanf("%d",&n);
	ansf=0;
	anse=1;
	for(int i=1;i<=n;i++)
	{
		long long a,b,m;
		scanf("%lld%lld%lld",&a,&b,&m);
		long long minn=f(b,anse);
		ansf=minn/anse*ansf + (m%2 ? (minn/b*a) : -1*minn/b*a);
		anse=minn;
		long long maxx=g(anse,ansf);
		printf("maxx=%lld\n",maxx);
		ansf/=maxx;
		anse/=maxx;
	}
	if(anse==1)
		printf("%lld",ansf);
	else
		printf("%lld/%lld",ansf,anse);
	return 0;
}

‘#1 # 2 # 4 # 6 # 7 # 8 # 9 # 10'RE

2023/10/6 10:58
加载中...