求助挖土机A
  • 板块学术版
  • 楼主KAqwq
  • 当前回复11
  • 已保存回复11
  • 发布时间2022/10/16 12:02
  • 上次更新2023/10/27 07:17:49
查看原帖
求助挖土机A
448018
KAqwq楼主2022/10/16 12:02

大样例过力,但30pts

#include<bits/stdc++.h>
typedef long long ll;
ll n,m,a,b,opt,ans;
ll cnt=1,now;
int gcd(int x,int y){
	if(!y) return x;
	return gcd(y,x%y);
}
int main(){
	scanf("%lld",&n);
	for(int i=1;i<=n;i++){
		scanf("%lld%lld%lld",&a,&b,&opt);
		if(opt==1){
			now=now*b+cnt*a;
			cnt*=b;
		}
		else if(opt==2){
			now=now*b-cnt*a;
			cnt*=b;
		}
		ll op=gcd(cnt,now);
		cnt/=op,now/=op;
	}
	ll poi=gcd(cnt,now);
	if(!cnt) putchar('0');
	else{
		if(cnt%now==0){
			printf("%lld",cnt/now);
			return 0;
		}
		else{
			if(cnt*now<0) printf("-%lld/%lld",abs(now/poi),abs(cnt/poi));
			else printf("%lld/%lld",now/poi,cnt/poi);
		}
	}
	/*if(cnt==now){
		putchar('1');
		return 0;
	}
	ll poi=gcd(cnt,now);
	if(now<0){
		printf("-%lld/%lld",-1*now/poi,cnt/poi);
		return 0;
	}
	printf("%lld/%lld",now/poi,cnt/poi);*/
	return 0;
}
2022/10/16 12:02
加载中...