蒟蒻第一次见到9个mle,求助
查看原帖
蒟蒻第一次见到9个mle,求助
225301
大珂学家楼主2022/10/23 11:01

震撼我妈

#include<bits/stdc++.h>
using namespace std;
long long t1=0,t2=0,a[1000],b[1000],n,m[1000];
long long gcd(int a,int b)
{
	int n=max(a,b);
	int m=min(a,b);
	if(n%m==0)
	 return m;
	return gcd(n%m,m);
}
void get1(int c)
{
	if(t2==b[c])
	{
		t1=t1+a[c];
		return;
	}
	t1=t1*b[c]+a[c]*t2;
	t2=t2*b[c];
	int d=gcd(t1,t2);
	t1=t1/d;
	t2=t2/d;
}
void get2(int c)
{
	if(t2==b[c])
	{
		t1=t1-a[c];
		return;
	}
	t1=t1*b[c]-a[c]*t2;
	t2=t2*b[c];
	int d=gcd(t1,t2);
	t1=t1/d;
	t2=t2/d;
}
int main()
{
	//freopen("explore.in","r",stdin);
	//freopen("explore.out","w",stdout);
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>a[i]>>b[i]>>m[i];
	}
	t1=a[0];
	t2=b[0];
	for(int i=1;i<n;i++)
	{
		if(m[i]==1) get1(i);
		if(m[i]==2) get2(i);
	}
	if(t2==1) cout<<t1;
	else cout<<t1<<"/"<<t2;
}
2022/10/23 11:01
加载中...