Codeforces Round #124 (Div. 2) B : Limit

問題概要

多項式がふたつあたえられるので、f(x)/g(x)でxを無限に飛ばしたときの収束先を求める。

解法

最高位の係数だけを見れば良い。

acceptされたコード

#include <cstdio>
#include <algorithm>
using namespace std;

const int MAX_N = 100;

int N, M;
int as[MAX_N + 1], bs[MAX_N + 1];

void init(){
	scanf("%d%d", &N, &M);
	for (int i = 0; i <= N; ++i) {
		scanf("%d", as + i);
	}
	for (int i = 0; i <= M; ++i) {
		scanf("%d", bs + i);
	}
}

void solve(){
	int a = as[0], b = bs[0];
	if (N > M) {
		puts("-Infinity" + (a*b >= 0 ? 1 : 0) );
	}
	else if (N < M) {
		puts("0/1");
	}
	else {
		int d = __gcd(abs(a), abs(b));
		printf("%s%d/%d\n", a*b>0?"":"-", abs(a)/d, abs(b)/d);
	}
	int hogehoge = 3;
}

int main(){
	init();
	solve();

	return 0;
}