比赛 202110省实验桐柏一中普及组联赛 评测结果 AAAAAAAAAW
题目名称 分数运算 最终得分 90
用户昵称 YAGE 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2021-10-18 19:14:01
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
#define int unsigned long long 
int n,m,a[105][2],b[65],ans[2]={0,1};
inline int read(){
	int w=0;
	char c=getchar();
	while(c<='9'&&c>='0'){
		w=(w<<3)+(w<<1)+(c^48);
		c=getchar();
	}return w;
}
int gcd(int a,int b){
	int aa=b;
	int bb=a%b;
	return bb==0?aa:gcd(aa,bb);
}
void add(int a,int a1,int b,int b1){
	int a11=a1*b1;
	a*=b1;b*=a1;
	a+=b;
	int num=gcd(a,a11);
	a/=num;a1=a11/num;
	ans[0]=a;ans[1]=a1;
}
void sq(int _a,int a1,int _b){
	if(_a%_b==0)_a/=_b;
	else a1*=_b;
	int num=gcd(_a,a1);
	_a/=num;a1=a1/num;
	ans[0]=_a;
	ans[1]=a1;
}
signed main(){
	freopen("fenshu.in","r",stdin);
	freopen("fenshu.out","w",stdout);
	n=read();m=read();
	for(int i=1;i<=n;i++){
		a[i][0]=read();a[i][1]=read();
	}for(int i=1;i<=m;i++){
		b[i]=read();
	}
	for(int i=1;i<=n;i++){
		add(ans[0],ans[1],a[i][0],a[i][1]);
	}
	for(int i=1;i<=m;i++){
		sq(ans[0],ans[1],b[i]);
	}
	if(ans[0]%ans[1]==0) cout<<ans[0]/ans[1];
	else cout<<ans[0]<<" "<<ans[1];
	return 0;
}