60分求助:
#include<bits/stdc++.h>
using namespace std;
long long n,a[1001],b[1001],opt[1001],ansz,ansm,ans;
inline long long read()
{
long long f=1,x=0;
char ch=getchar();
while(ch>'9'||ch<'0'){
if(ch=='-')f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x*f;
}
int main()
{
std::ios::sync_with_stdio(false);
n=read();
ansz=read();ansm=read();opt[1]=read();ansz*=opt[1];
for(int i=2;i<=n;i++){
a[i]=read();b[i]=read();opt[i]=read();
if(opt[i]==1){
long long l=ansm;
ansz*=b[i];ansm*=b[i];ansz+=a[i]*l;
}
else{
long long l=ansm;
ansz*=b[i];ansm*=b[i];ansz-=a[i]*l;
}
long long t=__gcd(ansz,ansm);
ansz/= t,ansm/=t;
}
if(ansz%ansm==0)cout<<ansz/ansm<<endl;
else cout<<ansz<<'/'<<ansm<<endl;
return 0;
}
比如说第一组数据 输入: 10 22 32 2 32 240 1 34 3 2 67 7 1 83 7 1 39 600 2 86 810 2 61 24 1 4 2 2 95 810 2 答案输出: 2221343/226800 实际输出: 1344559/113400 求助求助,马上就要CSP-J/S了,这还是第一题,挺急的