定义一个结构及其加法
#include<iostream>
using namespace std;
struct node
{
long num,den;
node(int a,int b):num(a),den(b){}
node operator+(node x)
{
long _n=num*x.den+den*x.num;
long _d=den*x.den;
if(!_n)return node(0,1);
long c,a=_n,b=_d;
while(c=a%b)a=b,b=c;
return node(_n/b,_d/b);
}
};
int main()
{
int n;cin>>n;
node x(0,1);
for(long a,b,i=0;i<n;++i)
{
scanf("%ld/%ld",&a,&b);
x=x+node(a,b);
}
bool flag=false;
if(x.num==0)cout<<0;
else
{
if(x.num/x.den&&(flag=true))
cout<<x.num/x.den;
if(x.num%x.den)
{
if(flag)cout<<' ';
cout<<x.num%x.den<<'/'<<x.den;
}
}
return 0;
}