/*
HDU - 5912
题意大体是
给两个数组a[n],b[n]
然后按照给定的式子求解
水题而已,直接模拟即可
*/
#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <math.h>
#include <string.h>
#define ll long long
using namespace std;
int gcd(int a,int b)
{
return b?gcd(b,a%b):a;
}
int main()
{
int t;
scanf("%d",&t);
for(int k=1;k<=t;k++)
{
int n;
scanf("%d",&n);
int a[15],b[15];
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n;i++)
scanf("%d",&b[i]);
int zi=b[n],mu=a[n];//存分数分子,分母
for(int i=n-1;i>=1;i--)
{
zi+=a[i]*mu;//根据整数加分数规律,先把整数乘以分母再和分子相加
swap(zi,mu);//除以一个数等于乘以一个数倒数
zi*=b[i];
}
int g=gcd(zi,mu);//上下约分
printf("Case #%d: %d %d\n",k,zi/g,mu/g);
}
return 0;
}
HDU - 5912
题意大体是
给两个数组a[n],b[n]
然后按照给定的式子求解
水题而已,直接模拟即可
*/
#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <math.h>
#include <string.h>
#define ll long long
using namespace std;
int gcd(int a,int b)
{
return b?gcd(b,a%b):a;
}
int main()
{
int t;
scanf("%d",&t);
for(int k=1;k<=t;k++)
{
int n;
scanf("%d",&n);
int a[15],b[15];
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n;i++)
scanf("%d",&b[i]);
int zi=b[n],mu=a[n];//存分数分子,分母
for(int i=n-1;i>=1;i--)
{
zi+=a[i]*mu;//根据整数加分数规律,先把整数乘以分母再和分子相加
swap(zi,mu);//除以一个数等于乘以一个数倒数
zi*=b[i];
}
int g=gcd(zi,mu);//上下约分
printf("Case #%d: %d %d\n",k,zi/g,mu/g);
}
return 0;
}