关于我做去年模拟这件事)
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;
}