結果
| 問題 | No.29 パワーアップ | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2018-04-29 04:32:01 | 
| 言語 | Java (openjdk 23) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 142 ms / 5,000 ms | 
| コード長 | 1,881 bytes | 
| コンパイル時間 | 2,802 ms | 
| コンパイル使用メモリ | 77,728 KB | 
| 実行使用メモリ | 46,752 KB | 
| 最終ジャッジ日時 | 2025-10-24 21:06:22 | 
| 合計ジャッジ時間 | 6,092 ms | 
| ジャッジサーバーID (参考情報) | judge3 / judge4 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 22 | 
ソースコード
import java.util.Scanner;
// ***問題文***
// Quinは、RPGをしている。
// そのRPGでは、アイテムは10種類(それぞれ番号付けされている)あり、「同じアイテム」を2つ揃えるか、「任意のアイテム」を4つ揃えるとパワーアップする仕組みがある。
// そして敵を倒したら、何かアイテムを3つもらうことができる。
// (同じアイテムがもらえることもある。)
// このとき、持てるアイテムの上限はないとし、アイテムの組み合わせは自由に決められる。(自動的にパワーアップすることはないとする。)
// N回敵を倒すと考えたとき、その時のパワーアップする最大の回数を求めてください。
// ***入力***
// N
// a1 b1 c1
// a2 b2 c2
// ・・・・
// aN bN cN
// 1行目に敵を倒す回数を表すN (1<=N<=100)が与えられる。
// 2行目以降はi(1<=i<=N)回目で敵を倒した時のもらえる3つのアイテムの番号ai,bi,ci(1<=ai,bi,ci<=10)が半角空白区切りで与えられる。
// ***出力***
// 最大のパワーアップする回数を文字列で出力してください。出力の末尾には改行をいれること。
public class No29 {
    public static void main(String[] args) {
        // 標準入力から読み込む際に、Scannerオブジェクトを使う。
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] a = new int[10];
        int temp = 0;
        for(int i = 0; i < n * 3; i++) {
            temp = sc.nextInt();
            a[temp - 1] = a[temp - 1] + 1;
        }
        int t = 0;
        int remain = 0;
        for(int i = 0; i < 10; i++) {
            t += a[i] / 2;
            remain += a[i] % 2;
        }
        t += remain / 4;
        System.out.println(t);
    }
}
            
            
            
        