比赛 202110省实验桐柏一中普及组联赛 评测结果 AAAAAAAAAW
题目名称 分数运算 最终得分 90
用户昵称 佚名 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2021-10-18 21:08:15
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
inline __int128 read()
{
    __int128 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*10+ch-'0';
        ch=getchar();
    }
    return x*f;
}
inline void write(__int128 x)
{
    if(x<0)
    {
        putchar('-');
        x=-x;
    }
    if(x>9)
        write(x/10);
    putchar(x%10+'0');
}
int main()
{
    freopen("fenshu.in","r",stdin);
    freopen("fenshu.out","w",stdout);
    __int128 a,b;
    int n,m,s=0;
    cin>>n>>m;
    while(n--)
    {
        __int128 x=read(),y=read(),t,xx,yy;
        if(!s)
        {
            a=x;
            b=y;
            s++;
            continue;
        }
        a=a*y+b*x;
        b=b*y;
        //cout<<a<<" "<<b<<endl;
        xx=a;
        yy=b;
        while(yy!=0)
        {
            t=yy;
            yy=xx%yy;
            xx=t;
        }
        a=a/xx;
        b=b/xx;
        //cout<<a<<" "<<b<<endl;
    }
    while(m--)
    {
        unsigned long long x=read(),xx,yy,t;
        b=b*x;
        xx=a;
        yy=b;
        while(yy!=0)
        {
            t=yy;
            yy=xx%yy;
            xx=t;
        }
        a=a/xx;
        b=b/xx;
        //cout<<a<<" "<<b<<endl;
    }
    if(b%a==0)
    {
        write(b/a);
        return 0;
    }
    write(a);
    cout<<" ";
    write(b);
	return 0;
}