80pts why???
查看原帖
80pts why???
737531
sheryang_WA楼主2022/10/16 20:12
#include<bits/stdc++.h>
using namespace std;
long long n,ans_a=0,ans_b=1,a,b,top;
int __lcm(long long x,long long y)
{
	return x*y/__gcd(x,y);
}
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    cin>>n;
    for(int i=1;i<=n;i++)
    {
    	cin>>a>>b>>top;
//    	ans_b=__lcm(ans_b,b);
//    	b=__lcm(ans_b,b);
    	int lcm=__lcm(ans_b,b);
    	if(top==1)
    	{
    		ans_a=(ans_a*lcm/ans_b)+(a*lcm/b);
		}
		else
		{
			ans_a=(ans_a*lcm/ans_b)-(a*lcm/b);
		}
		ans_b=__lcm(ans_b,b);
		int gcd=__gcd(ans_a,ans_b);
		ans_a=ans_a/gcd;
		ans_b=ans_b/gcd;
	}
	if(ans_a==0)
	{
		cout<<0;
		return 0;
	}
	if(ans_a<0&&ans_b<0)
	{
		cout<<abs(ans_a)<<" "<<abs(ans_b);
		return 0;
	}
	if(ans_b<0)
	{
		ans_b=abs(ans_b);
		ans_a=1-ans_a;
	}
	if(ans_a%ans_b!=0)
	cout<<ans_a<<'/'<<ans_b;
	else
	cout<<ans_a/ans_b;
    return 0;
}
2022/10/16 20:12
加载中...