这个是题目
有部分测试例子结果是正确的,有一个运行超时,一个答案错误,求帮助
↓↓以下是出问题的代码↓↓
#include<stdio.h>
#include<math.h>
int main(){
int N;
char ch[100];
long long a[100],b[100],i;
scanf("%d",&N);
for(i=0;i<N;i++)
{
scanf("%lld",&a[i]);
scanf("%c",&ch[i]);
scanf("%lld",&b[i]);
}
long long n=labs(b[0]);
int m;
while(1){
m=0;
for(i=0;i<N;i++)
{
if(n%b[i]!=0){
m=1;
break;
}
}
if(m==0) break;
n++;
}
for(i=0;i<N;i++)
{
a[i]*=(n/b[i]);
b[i]*=(n/b[i]);
}
long long suma=0,sumb=b[0];
for(i=0;i<N;i++){
suma+=a[i];
}
long long k,max=(suma>=sumb)?suma:sumb;
for(i=max;i>0;i--){
if(suma%i==0&&sumb%i==0){
k=i;
break;
}
}
int j=0;
if(labs(suma)<labs(sumb)){
suma/=k;
sumb/=k;
printf("%lld/%lld\n",suma,sumb);
}
else if(suma%sumb==0&&labs(suma)>=labs(sumb)) printf("%d\n",suma/sumb);
else{
suma/=k;
sumb/=k;
for(i=0;i<n;i++){
if(suma<sumb){
printf("%d %lld/%lld\n",j,suma,sumb);
break;
}
suma-=sumb;
j++;
}
}
return 0;
}