WHY RE?
查看原帖
WHY RE?
388691
ETO_leader楼主2023/7/27 10:05

关于我做去年模拟这件事)

30pts,7点RE,经排查应该没有分母为0的情况。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,a,b,op;
ll ansa=0;
ll ansb=1;
pair<ll,ll> pplus(ll a,ll b,ll c,ll d){ //a/b+c/d=(ad+bc)/bd
	return make_pair(a*d+b*c,b*d);
}
pair<ll,ll> mminus(ll a,ll b,ll c,ll d){ //a/b+c/d=(ad+bc)/bd
	return make_pair(a*d-b*c,b*d);
}
ll gcd(ll a,ll b){
	if (b==0) return a;
	return gcd(b,a%b);
}
int main(){
	cin>>n;
	for (ll i=1;i<=n;i++){
		cin>>a>>b>>op;
		if (op==1){
			ansa=pplus(ansa,ansb,a,b).first;
			ansb=pplus(ansa,ansb,a,b).second;
		}
		else{
			ansa=mminus(ansa,ansb,a,b).first;
			ansb=mminus(ansa,ansb,a,b).second;
		}
	}
	if ((ansa/gcd(ansa,ansb))%(ansb/gcd(ansa,ansb))==0){
		cout<<(ansa/gcd(ansa,ansb))/(ansb/gcd(ansa,ansb))<<endl;
	}else{
			cout<<ansa/gcd(ansa,ansb)<<"/"<<ansb/gcd(ansa,ansb)<<endl;
	}
	return 0;
}
2023/7/27 10:05
加载中...