比赛 |
202110省实验桐柏一中普及组联赛 |
评测结果 |
AAAAAAAAAA |
题目名称 |
分数运算 |
最终得分 |
100 |
用户昵称 |
op_组撒头屯 |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2021-10-18 19:25:42 |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
typedef __int128 ll;
int n,m;
ll az=0,am=1;
ll gcd(ll a,ll b){
if (b==0)return a;
return gcd(b,a%b);
}
ll lcm(ll a,ll b){
return a/gcd(a,b)*b;
}
void addsum(ll bz,ll bm){
ll t=lcm(am,bm);
ll tz=t/am*az+t/bm*bz;
ll l=gcd(tz,t);
az=tz/l;am=t/l;
return ;
}
ll read(){
ll t=0;
char s[50];
scanf("%s",s);
for (int i=0;i<strlen(s);i++){
t*=10;
t+=s[i]-'0';
}
return t;
}
void write(ll x){
if(x>9)write(x/10);
putchar(x%10+'0');
return ;
}
int main(){
freopen ("fenshu.in","r",stdin);
freopen ("fenshu.out","w",stdout);
cin>>n>>m;
for (int i=1;i<=n;i++){
ll a,b;
a=read();b=read();
addsum(a,b);
}
for (int i=1;i<=m;i++){
ll a,b;
a=read();
b=gcd(a,az);
az/=b;
am=a/b*am;
}
if (az%am==0){
write(az/am);
}
else{
write(az);
printf(" ");
write(am);
}
return 0;
return 0;
}