比赛 202110省实验桐柏一中普及组联赛 评测结果 AAAAAAAAAW
题目名称 分数运算 最终得分 90
用户昵称 就决定是你辣 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2021-10-18 19:02:51
显示代码纯文本
#include<bits/stdc++.h>
//#define int unsigned long long 
using namespace std;
unsigned long long a[55][2];
unsigned long long b[30];
unsigned long long m,n,gcdd=1;

unsigned long long gcd(unsigned long long x,unsigned long long y){
	if(y==0)return x;
	else gcd(y,x%y);
}
int main(){
	freopen("fenshu.in","r",stdin);
	freopen("fenshu.out","w",stdout);
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i][0];
		cin>>a[i][1];
	}
	for(int i=1;i<=m;i++){
		cin>>b[i];
	}
	for(int i=1;i<=n;i++){
		gcdd=a[i][1]*gcdd/gcd(a[i][1],gcdd);
		//cout<<1;
	}
	for(int i=1;i<=m;i++){
		gcdd=b[i]*gcdd/gcd(b[i],gcdd);
		
	}
	a[n+1][1]=gcdd;
	for(int i=1;i<=n;i++){
		a[i][0]=a[i][0]*gcdd/a[i][1];
		a[i][1]=gcdd;
		
		a[n+1][0]+=a[i][0];
	//	cout<<a[i][0]<<endl;
	}
	//cout<<a[n+1][0]<<" "<<a[n+1][1]<<endl;
	for(int i=1;i<=m;i++){
		if(a[n+1][0]%b[i]==0)a[n+1][0]/=b[i];
		else a[n+1][1]*=b[i];
		
	}
	if(a[n+1][0]>=a[n+1][1]&&a[n+1][0]%a[n+1][1]==0)cout<<a[n+1][0]/a[n+1][1];
	else {
		gcdd=gcd(a[n+1][0],a[n+1][1]);
		cout<<a[n+1][0]/gcdd<<" "<<a[n+1][1]/gcdd;
	}
	return 0;
}