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