求助挖土机T1,样例全过,提交10分
  • 板块学术版
  • 楼主mutan
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/10/16 20:36
  • 上次更新2023/10/27 07:12:15
查看原帖
求助挖土机T1,样例全过,提交10分
749371
mutan楼主2022/10/16 20:36

求哪位帮看一下代码,负数我用的负数分子表示,所有样例全过,提交上去只剩 10pts10 \textrm{pts},剩余点全 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;
}```
2022/10/16 20:36
加载中...