比赛 202110省实验桐柏一中普及组联赛 评测结果 AAAAAAAAAA
题目名称 分数运算 最终得分 100
用户昵称 我是孙培轩我称霸一中1 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2021-10-18 20:38:14
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define int __int128

inline int read(){
    int x=0,f=1;
    char ch=getchar();
    while(ch<'0'||ch>'9'){
        if(ch=='-')
            f=-1;
        ch=getchar();
    }
    while(ch>='0'&&ch<='9'){
        x=(x<<1)+(x<<3)+(ch^48);
        ch=getchar();
    }
    return x*f;
}

inline void print(int x){
	if(x<0)putchar('-'),x=-x;
	if(x>9)print(x/10);
	putchar(x%10^48);
}

int gcd(int a,int b){
	if(b==0)return a;
	return gcd(b,a%b);
}

int n,m;

struct node{
	int a,b;
};

node add(int a1,int b1,int a2,int b2){
	node res;
	int gcdd=gcd(b1,b2);
	res.b=b1/gcdd*b2;	
	res.a=a1*(res.b/b1)+a2*(res.b/b2);
	int gcddd=gcd(res.a,res.b);
	res.a/=gcddd,res.b/=gcddd;
	return res;
}

node chu(int a1,int b1,int c){
	node res;
	res.a=a1;
	res.b=b1*c;
	int gcdd=gcd(res.a,res.b);
	res.a/=gcdd,res.b/=gcdd;
	return res;
}

signed main(){
	freopen("fenshu.in","r",stdin);
	freopen("fenshu.out","w",stdout);
	n=read(),m=read();
    node ans;
    ans.a=read(),ans.b=read();
    n--;
    int x,y;
    while(n--){
    	x=read(),y=read();
    	ans=add(ans.a,ans.b,x,y);
    }
    while(m--){
    	x=read();
    	ans=chu(ans.a,ans.b,x);
    }
    if(ans.b==1)print(ans.a);
    else print(ans.a),printf(" "),print(ans.b);
	return 0;
} 
/*
3 1
1 2
1 3
5 6
2
*/