2756 Autumn is a Genius

問題概要

二つの整数a,bが与えられる。
a+bを出力せよ。

ただし、a,b<32768を満たす。

解法

a,bの足し算を普通に出力するとWA.
実はこの問題のa,bには下限が設定されていない為多倍長の計算が必要になる。


最初spaghetti souceの多倍長のコードを使ったら、実は負の数が扱えないことに気づき、負の数の実装を追加してみたのだが、出力にiomanipを使うせいかTLEになった。


なので、JavaのBitIntを使ってみたら、入力に+があるところで落ちた。
その修正をしたらAC.

ソースコード

import java.math.BigInteger;
import java.util.Scanner;
class Main {
	class PKU2756{
		void run(){
			Scanner sc=new Scanner(System.in);
			int T; T=sc.nextInt();
			String s;
			for(int U=0;U<T;U++){
				s=sc.next();
				BigInteger a=new BigInteger(s.charAt(0)=='+'?s.substring(1):s);
				s=sc.next();	
				BigInteger b=new BigInteger(s.charAt(0)=='+'?s.substring(1):s);
				System.out.println(a.add(b));
			}
		}
	}
	public static void main(String[] args) {
		new Main().new PKU2756().run();
	}
}