Trang

Chủ Nhật, 2 tháng 1, 2011

2199. A+B Problem

import java.io.*;
import java.util.Arrays;

public class Main {

    /**
     * http://acm.tju.edu.cn/toj/showp2199.html
     * @author hunglee
     */
    public static void main(String[] args) throws IOException {
        
        StreamTokenizer in = new StreamTokenizer(new BufferedReader(
                new InputStreamReader(System.in)));
        
        int n, i, j, k, a[];
        do {
            in.nextToken();
            n = (int) in.nval;
            if (n == 0)
                break;
            
            a = new int[n];
            for (i = 0; i < n; ++i) {
                in.nextToken();
                a[i] = (int) in.nval;
            }
            Arrays.sort(a);
            boolean b = false;
            for (i = n - 1; i > 1; --i)
                for (j = i - 1; j > 0; --j) {
                    k = Arrays.binarySearch(a, a[i] - a[j]);
                    if (k >= 0 && (k != j || a[k] == a[k+1] ||
                            ((k > 0 && a[k-1] == a[k])))) {
                        System.out.println(a[i]);
                        b = true;
                        i = j = 0;
                    }
                }
            if (!b)
                System.out.println(-1);
        } while (true);
    }

}

Không có nhận xét nào:

Đăng nhận xét