有判断分母为负数,但仍然WA #6 #7
悬赏2关注qwq
#include<iostream>
#include<cmath>
using namespace std;
long long g_c_d(long long a,long long b){
while(a%b!=0){
long long c=a%b;
a=b;
b=c;
}
return b;
}
long long l_c_m(long long a,long long b){
return a*b/g_c_d(a,b);
}
signed main(){
long long n,a,b,opt,ansa=0,ansb=0,l;
cin>>n;
cin>>a>>b>>opt;
if(opt==1)ansa=a;
else ansa=-a;
ansb=b;
for(int i=2;i<=n;i++){
cin>>a>>b>>opt;
if(opt==1){
l=l_c_m(ansb,b);
ansa=ansa*(l/ansb)+a*(l/b);
ansb=b=l;
}else{
l=l_c_m(ansb,b);
ansa=ansa*(l/ansb)-a*(l/b);
ansb=l;
}
}
l=g_c_d(ansa,ansb);
ansa/=l;ansb/=l;
if(ansb<0){
ansb=abs(b);
ansa=-a;
}
if(ansb==1) cout<<ansa;
else cout<<ansa<<'/'<<ansb;
}