30分求助DAOLAO!!
  • 板块P8584 探索未知
  • 楼主2pow10
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/10/16 22:18
  • 上次更新2023/10/27 07:10:49
查看原帖
30分求助DAOLAO!!
394197
2pow10楼主2022/10/16 22:18
#include<bits/stdc++.h>
#define int long long
using namespace std
int pan=1;
int gcd(int a,int b) {
for(int i=2; i<=min(abs(a),abs(b)); i++)
	    if(a%i==0&&b%i==0) {
			pan = i;
			return 1;
		}
	return 0;
}
signed main() {
	int shu=0;
	int n;
	cin >> n;
int a[999999],b[999999],c[999999],zi=0,mu=1;
    int gong = 1;
	for(int i=1; i<=n; i++) cin  >> a[i] >> b[i] >> c[i];
	for(int i=1; i<=n; i++) gong *= b[i];
	for(int i=1; i<=n; i++) {
		if(c[i]==1) zi += a[i] * (gong/b[i]);
		if(c[i]==2) zi -= a[i] * (gong/b[i]);
	}
	mu = gong;
	if(zi<0) shu++;
	if(mu<0) shu++;
	while(gcd(zi,mu)!=0) {
		gcd(zi,mu);
		zi = zi / pan;
		mu = mu / pan;
	}
	zi = abs(zi);
	mu = abs(mu);
	if(shu==1) cout << "-";
	if(zi==mu) cout << 1;
	else cout << zi << "/" << mu;
	return 0;
}
2022/10/16 22:18
加载中...