ZZULIOJ 1146: キャンディーを食べる、ジャワ

ZZULIOJ 1146: キャンディーを食べる、ジャワ

質問の説明

ほほ、ついにスピークレスからすべてのキャンディーを勝ち取りました。ガルドンはキャンディーを食べるのが特別な趣味です。彼は同じキャンディーを 2 回続けて食べるのが好きではありません。最初にタイプ A のキャンディーを 1 つ食べて、次は別のキャンディーに変えるのが好きです。それぞれのフレーバーで、タイプ B のキャンディーを食べる、それだけです。しかし、ガルドンは、キャンディーをすべて食べることができるキャンディーを食べる順序があるかどうか知りません。それを計算するプログラムを書いてください。

入力

最初の行には整数 T があり、その後に T グループのデータが続き、各データ グループは 2 行を占めます。最初の行は整数 N (0 < N <= 1000000) で、キャンディーの種類を示します。2 行目は N 個の数字で、各種類のキャンディ Mi の数を表します (0 < Mi <= 109)。

出力

データのセットごとに、「はい」または「いいえ」を含む行を出力します。

サンプル入力コピー
2
3
4 1 1
5
5 4 3 2 1
サンプル出力コピー
No
Yes
import java.io.*;

public class Main {
    
    
    public static void main(String[] args) throws IOException {
    
    
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int T = Integer.parseInt(bf.readLine());
        for (int i = 0; i < T; i++) {
    
    
            int n = Integer.parseInt(bf.readLine());
            int[] a = new int[n];
            String[] str = bf.readLine().split(" ");
            for (int j = 0; j < n; j++) {
    
    
                a[j] = Integer.parseInt(str[j]);
            }
            int mx = 0, sum = 0;
            for (int c : a) {
    
    
                sum += c;
                mx = Math.max(mx, c);
            }
            bw.write(mx <= sum - mx + 1 ? "Yes\n" : "No\n");
        }
        bw.close();
    }
}

おすすめ

転載: blog.csdn.net/qq_52792570/article/details/132566986