結果
| 問題 | No.120 傾向と対策:門松列(その1) | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2020-03-03 17:40:34 | 
| 言語 | Java (openjdk 23) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 851 ms / 5,000 ms | 
| コード長 | 1,144 bytes | 
| コンパイル時間 | 4,553 ms | 
| コンパイル使用メモリ | 79,504 KB | 
| 実行使用メモリ | 48,508 KB | 
| 最終ジャッジ日時 | 2024-10-13 22:52:31 | 
| 合計ジャッジ時間 | 7,991 ms | 
| ジャッジサーバーID (参考情報) | judge5 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 4 | 
ソースコード
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;
    	}
 	}
}
            
            
            
        