50pts求助
查看原帖
50pts求助
668379
Poole_tea楼主2022/10/27 16:10
#include<bits/stdc++.h>
using namespace std;
int mingb(int a,int b)
{
	return a*b/__gcd(a,b);
}
int main()
{
	int n;
	cin>>n;
	int a,b,c,x=0,y=0,z;
	char d='+';
	for(int i=1;i<=n;i++)
	{
		cin>>a>>b>>c;
		if(x==0&&y==0)
		{
			if(c==1)
			{
				x=a;
				y=b;
			}
			else
			{
				d='-';
				x=a;
				y=b;
			}
			continue;
		}
		if(c==1)
		{
			z=mingb(b,y);
			a*=(z/b);
			x*=(z/y);
			x+=a;
			if(x>0)
			{
				d='+';
			}
			y=z;
		}
		else
		{
			z=mingb(b,y);
			a*=(z/b);
			x*=(z/y);
			x-=a;
			if(x<0)
			{
				d='-';
			}
			y=z;
		}
	}
	if(d=='-')
	{
		cout<<d<<x/__gcd(x,y)<<'/'<<y/__gcd(x,y);
	}
	else
	{
		if(x==y)
		{
			cout<<1;
		}
		else if(y==1)
		{
			cout<<x;
		}
		else
		{
			cout<<x/__gcd(x,y)<<'/'<<y/__gcd(x,y);
		}
	}
}
2022/10/27 16:10
加载中...