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; }