脱力駆動開発記

ゲームアプリを作るエンジニアの技術メモ

MENU

AOJ-1153:Equal Total ScoresAdd Star

[http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=1153:title=問題文
]
問題文のままただそれを実行すると冗長になって読みにくいコードができてしまう。
このコードは自分が行き詰まって他の人の回答を参考にしました。。

import java.util.*;
public class AOJ1153 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while(true){
			int n = sc.nextInt();
			int m = sc.nextInt();
			int sumTaro = 0;
			int sumHanako = 0;
			int[] taro = new int[n];
			int[] hanako = new int[m];
			if(n==0&&m==0) break;
			for(int i = 0;i<n;i++){
				taro[i] = sc.nextInt();
				sumTaro += taro[i];
			}
			for(int i = 0;i<m;i++){
				hanako[i] = sc.nextInt();
				sumHanako += hanako[i];
			}
			int changeTaro = -1;
			int changeHanako = -1;
			for(int i =0;i < n;i++){
				for(int j = 0; j<m;j++){
					if(sumTaro-taro[i]+hanako[j] == sumHanako-hanako[j]+taro[i]){
						if(changeTaro == -1){ 
							changeTaro = taro[i];
							changeHanako = hanako[j];
						}else if(taro[i] + hanako[j]<changeHanako + changeTaro){
							changeTaro = taro[i];
							changeHanako = hanako[j];
						}
					}
				}
			}
			if(changeTaro ==-1){
				System.out.println(-1);
			}else{
				System.out.println(changeTaro+" "+changeHanako);
			}
		}
	}
}