AOJ-1153: 等しい合計点 (Equal Totaol Score)

解法

間に合うので全探索で。

import java.util.*;

class Main {

	public static void main(String args[]){
		Scanner in = new Scanner(System.in);
		for(;;){
			int n = in.nextInt(), m = in.nextInt();
			if(n==0 && m==0) break;
			int as[] = new int[n], bs[] = new int[m];
			for(int i=0; i<n; i++) as[i] = in.nextInt();
			for(int i=0; i<m; i++) bs[i] = in.nextInt();
			int totalA=0, totalB=0;
			int a=-1, b=-1, s=1<<29;
			for(int i=0; i<n; i++) totalA += as[i];
			for(int i=0; i<m; i++) totalB += bs[i];
			for(int i=0; i<n; i++){
				for(int j=0; j<m; j++){
					if(as[i] + bs[j] < s && totalA - as[i] + bs[j] == totalB - bs[j] + as[i]){
						s = as[i] + bs[j];
						a = as[i];
						b = bs[j];
					}
				}
			}
			if(a<0) System.out.println(-1);
			else System.out.println(a + " " + b);
		}
	}
	
}