結果

問題 No.120 傾向と対策:門松列(その1)
コンテスト
ユーザー tsunabit
提出日時 2020-03-03 17:40:34
言語 Java
(openjdk 26.0.2.1 + ACL)
コンパイル:
javac -J-Duser.language=en -encoding UTF8 -cp /opt/aclib/ac_library.jar _filename_
実行:
java -ea -Xmx700m -Xss256M -DONLINE_JUDGE=true -cp .:/opt/aclib/ac_library.jar _class_
結果
AC  
実行時間 483 ms / 5,000 ms
+ 577µs
コード長 1,144 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 2,631 ms
コンパイル使用メモリ 88,488 KB
実行使用メモリ 51,040 KB
最終ジャッジ日時 2026-09-16 01:30:04
合計ジャッジ時間 6,141 ms
ジャッジサーバーID
(参考情報)
judge3_1 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 4
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import java.util.*;
import java.io.*;
import java.math.*;

public class No120 {
	public static void main(String[] args) {
		try {
			Scanner sc = new Scanner(System.in);
			int t = sc.nextInt();

			for(int i = 0; i < t; i++) {
				int n = sc.nextInt();
				HashMap<Integer, Integer> m = new HashMap<Integer, Integer>();
				
				for(int j = 0; j < n; j++) {
					int tmp = sc.nextInt();
					if(m.containsKey(tmp)) {
						m.put(tmp, m.get(tmp)+1);
					}else {
						m.put(tmp, 1);
					}
				}
				
				for(int c : m.keySet()) {
//					System.out.println("k : v = " + c + " : " + m.get(c));
				}
				
				int[] a = new int[m.size()];
				int z = 0;
				for(int c : m.keySet()) {
					a[z] = m.get(c);
					z++;
				}
				Arrays.sort(a);
//				System.out.println(Arrays.toString(a));

				long ss = 0;
				while(a.length-3 >= 0 && a[a.length-3] > 0) {
					ss++;
					a[a.length-1]--;
					a[a.length-2]--;
					a[a.length-3]--;
					Arrays.sort(a);
				}
				System.out.println(ss);
			}
		} catch(Exception e) {
    		System.out.println("例外が発生しました。");
            System.out.println(e);
            return;
    	}
 	}
}
0