比赛 |
202110省实验桐柏一中普及组联赛 |
评测结果 |
AAAAAAAAAW |
题目名称 |
分数运算 |
最终得分 |
90 |
用户昵称 |
yh |
运行时间 |
0.003 s |
代码语言 |
C++ |
内存使用 |
0.57 MiB |
提交时间 |
2021-10-20 20:23:34 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
unsigned long long a[150],b[150],c[150],n,m;//a,b数组为分子,分母,c数组为整数
int le(int x,int y)
{
if(x==0)return 0;
if(b[x]==b[y])
{
a[y]+=a[x];
return 0;
}
else
{
a[x]*=b[y];
b[y]*=b[x];
a[y]*=b[x];
a[y]+=a[x];
unsigned long long b2=b[y];
for(int i=b2;i>=1;i--)
{
if(a[y]%i==0&&b[y]%i==0)
{
a[y]/=i;
b[y]/=i;
break;
}
}
}
return 0;
}
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]>>b[i];
le(i-1,i);
}
for(int i=1;i<=m;i++)
{
cin>>c[i];
b[n]*=c[i];
}
unsigned long long a1=a[n];
for(int i=2;i<=sqrt(a1);i++)
{
while(a[n]%i==0&&b[n]%i==0)
{
a[n]/=i;
b[n]/=i;
}
}
if(a[n]%b[n]==0)
{
cout<<a[n]/b[n];
}
else cout<<a[n]<<" "<<b[n];
return 0;
}