比赛 202110省实验桐柏一中普及组联赛 评测结果 C
题目名称 分数运算 最终得分 0
用户昵称 ➥Q小白小黑233 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2021-10-18 21:19:55
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstdint>
#include<bits\c++config.h>
using namespace std;
typedef __int128 ll;


ll gcd(ll in1, ll in2){
	while (in2 != 0){
		ll t = in1 % in2;
		in1 = in2;
		in2 = t;
	}
	return in1;
}
ll bigin(string s){
	int l=s.length();
	ll out=0;
	for(int i=0;i<l;i++){
		out=out*10+s[i]-'0';
	}
	return out;
}
void bigout(ll in){
	string out="";
	while(in>0){
		unsigned long long ten= 1e10;
		unsigned long long t=in%ten;
		in/=ten;
		cout<<t;
	}
//	int l=out.length();
//	for(int i=0;i<l;i++){
//		putchar(out[i]);
//	}
}

struct kind{
	ll a,b;
	kind(ll a,ll b){
	};
}fs={0,0},p={0,0};
void j(kind k);
void plusq( kind &x,const kind& y) {
	ll z=gcd( x.b,y.b);
	ll bei=(x.b/z*y.b);
	x=kind(bei/x.b*x.a+bei/y.b*y.a,bei);
	j(x);
}
void chu( kind& x,const long long & y){
	x=(kind( x.a,x.b*y ));
}
int main(){
	
	freopen("fenshu.in","r",stdin);
	freopen("fenshu.out","w",stdout);
	
	int n,m;
	cin>>n>>m;
	
	
	int all=n+m;
	int i;
	
	for(i=1;i<=n;i++){
		string ina,inb;
		cin>>ina>>inb;
		p=fs;
		fs.a=bigin(ina);
		fs.b=bigin(inb);
		plusq(fs,p);
	}
	for(i=1;i<=m;i++){
		unsigned long long l;
		cin>>l;
		p=fs;
		chu(fs,l);
	}
	
	
	
	bigout(fs.a);
	
	cout<<" ";
	bigout(fs.b);
	
	cout<<endl;
}
void j(kind k){
	ll z = gcd(k.a, k.b);//z=zuidagongyinshu
	k.a=k.a/z,k.b=k.b/z;
}