爆零了!!!!
  • 板块P8584 探索未知
  • 楼主qlb2312
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/10/18 19:22
  • 上次更新2023/10/27 06:59:16
查看原帖
爆零了!!!!
512673
qlb2312楼主2022/10/18 19:22

呜呜呜,样例全过,但是爆0,麻烦各位大佬帮忙看看orz。。。

#include<bits/stdc++.h>
using namespace std;
struct pc{
	long long fm,fz,jj;
};
pc a[1005],b;

void zf(long long r1,long long r2){
	if(r1>0&&r2<0){
		r1=-r1;  r2=-r2;
	}
	else if(r1<0&&r2<0){
		r1=-r1;   r2=-r2;
	}
	b.fz =r1;  b.fm =r2;
}
void jy(long long r3,long long r4){
	int mm=0;
	if(r3<0) mm=1;
	if(r3%r4==0){
		b.fz =b.fz /b.fm ;
		b.fm =1;
		return;
	}
	else{
		if(mm){
			r3=-r3;
			int nm=max(r3,r4);
			for(int i=2;i*i<=nm;i++){
				if(r3%i==0&&r4%i==0){
					r3=r3/i;
					r4=r4/i;
					i=2;
				}
			}
			b.fz=-r3;   b.fm =r4;
			return;
		}
		else if(!mm){
		    int nm=max(r3,r4);
			for(int i=2;i*i<=nm;i++){
				if(r3%i==0&&r4%i==0){
					r3=r3/i;
					r4=r4/i;
					i=2;
				}
			}
			b.fz=r3;   b.fm =r4;
			return;
		}
	}                 
}
int main(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i].fz>>a[i].fm>>a[i].jj;
	}
	b.fz =a[1].fz ;     b.fm =a[1].fm ; 
	zf(b.fz ,b.fm );
	for(int i=2;i<=n;i++){
		if(b.fm !=a[i].fm) {
			b.fz    =b.fz *a[i].fm ;
			a[i].fz =a[i].fz *b.fm ;
			b.fm    =a[i].fm *b.fm ;
			a[i].fm =a[i].fm *b.fm ;
		
		}
		if(a[i].jj ==1) b.fz +=a[i].fz ;
		if(a[i].jj ==2) b.fz -=a[i].fz ;
		zf(b.fz ,b.fm);
		jy(b.fz ,b.fm);
	}
//	cout<<b.fz <<"  "<<b.fm <<endl;
	if(b.fz%b.fm==0){
		cout<<b.fz;
	}
	else{
		cout<<b.fz<<"/"<<b.fm ;
	}
	return 0;
} 
2022/10/18 19:22
加载中...