求哪位帮看一下代码,负数我用的负数分子表示,所有样例全过,提交上去只剩 10pts,剩余点全 WA,不知道在哪出错了
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iomanip>
#include <cmath>
using namespace std;
int gcd(int a,int b)
{
int t;
while(b!=0)
{
t=b;
b=a%b;
a=t;
}
return a;
}
struct frac{
long long a,b;
frac operator+(const frac& A)const{
int lcm,G,mul1,mul2,aa,bb;
aa = a;
bb = b;
G = gcd(this->b,A.b);
lcm = G*b*A.b;
mul1 = G * A.b;
mul2 = G * b;
aa *= mul1;
bb = lcm;
aa += A.a * mul2;
G = gcd(abs(aa),bb);
aa /= G;
bb /= G;
return {aa,bb};
}
};
int main()
{
frac now,in;
int n,i,a,b,c;
now = {0,1};
cin>>n;
for(i=0;i<n;i++)
{
scanf("%d%d%d",&a,&b,&c);
in.a = a * (c==2?-1:1);
in.b = b;
now = now + in;
}
if(now.b != 1)
printf("%lld/%lld\n",now.a,now.b);
else
printf("%lld\n",now.a);
return 0;
}```