比赛 |
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;
}