結果
| 問題 | No.29 パワーアップ | 
| コンテスト | |
| ユーザー |  monburan_0401 | 
| 提出日時 | 2018-08-29 23:12:38 | 
| 言語 | C (gcc 13.3.0) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 1 ms / 5,000 ms | 
| コード長 | 1,533 bytes | 
| コンパイル時間 | 160 ms | 
| コンパイル使用メモリ | 27,592 KB | 
| 実行使用メモリ | 7,716 KB | 
| 最終ジャッジ日時 | 2025-10-24 21:07:21 | 
| 合計ジャッジ時間 | 829 ms | 
| ジャッジサーバーID (参考情報) | judge3 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 22 | 
コンパイルメッセージ
main.c: In function ‘main’:
main.c:19:9: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   19 |         scanf("%d",&N);         //      戦闘回数
      |         ^~~~~~~~~~~~~~
main.c:23:25: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   23 |                         scanf("%d",&get[k]);
      |                         ^~~~~~~~~~~~~~~~~~~
            
            ソースコード
/* Quinは、RPGをしている。
そのRPGでは、アイテムは10種類(それぞれ番号付けされている)あり、「同じアイテム」を2つ揃えるか、「任意のアイテム」を4つ揃えるとパワーアップする仕組みがある。
そして敵を倒したら、何かアイテムを3つもらうことができる。
(同じアイテムがもらえることもある。)
このとき、持てるアイテムの上限はないとし、アイテムの組み合わせは自由に決められる。(自動的にパワーアップすることはないとする。)
N回敵を倒すと考えたとき、その時のパワーアップする最大の回数を求めてください。*/
#include <stdio.h>
int main(void){
	int N;		//	入力値
	int num[10] = { 0 };		//	得た数字をカウント
	int get[3];		//	入力値 得る数字
	
	/*for (int i = 0; i < 10; i++){		//	確認用
		printf("%d",num[i]);
	}
	printf("\n");							//	確認用(ここまで)*/
	
	scanf("%d",&N);		//	戦闘回数
	
	for (int j = 0; j < N; j++){
		for (int k = 0; k < 3; k++){
			scanf("%d",&get[k]);
			num[ get[k] - 1 ] += 1;		//	10はnum[9]。−1する
		} 
	}
	int up = 0;		//	パワーアップ回数
	int D = 0;		//	2で割った余り
	
	for (int i = 0; i < 10; i++){
		up += ( num[i] / 2 );		//	同じ数字が2つあって1回パワーアップする
		D += ( num[i] % 2 );
	}
	up += ( D / 4 );		//	4つ揃ったら1回パワーアップする
	
	printf("%d\n",up);
	
	return 0;
}
            
            
            
        