結果
| 問題 | No.29 パワーアップ | 
| コンテスト | |
| ユーザー |  kachipan | 
| 提出日時 | 2023-06-26 09:33:53 | 
| 言語 | C (gcc 13.3.0) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 1 ms / 5,000 ms | 
| コード長 | 1,023 bytes | 
| コンパイル時間 | 149 ms | 
| コンパイル使用メモリ | 27,220 KB | 
| 実行使用メモリ | 7,716 KB | 
| 最終ジャッジ日時 | 2025-10-24 21:19:36 | 
| 合計ジャッジ時間 | 836 ms | 
| ジャッジサーバーID (参考情報) | judge1 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 22 | 
コンパイルメッセージ
main.c: In function ‘main’:
main.c:20:9: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   20 |         scanf("%d", &input);
      |         ^~~~~~~~~~~~~~~~~~~
main.c:29:17: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   29 |                 scanf("%d", &n);
      |                 ^~~~~~~~~~~~~~~
            
            ソースコード
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <math.h>
// パワーアップ
int main()
{
	enum PowerUp
	{
		SAME_NEED = 2,
		WRONG_NEED = 4,
	};
	int input = 0;
	int item[100] = { 0 };	// 取得したアイテム。要素数はアイテムの種類
	int powerUp = 0;
	int total = 0;	// アイテムの総数
	// 敵を倒した回数を入力
	scanf("%d", &input);
	// 一回の戦闘につきアイテムを3個入手するので*3する
	input *= 3;
	
	for (int i = 0;i < input;i++, total++)
	{
		int n = 0;
		bool flag = false;
		// アイテムの種類を入力
		scanf("%d", &n);
		item[n]++;
		if (item[n] >= SAME_NEED)
		{
			// パワーアップしたら同種のアイテムは2個減る
			item[n] -= SAME_NEED;
			// 同時にアイテムの総数も減らす
			total -= SAME_NEED;
			powerUp++;
		}
	}
	// 違う種類のアイテムは4個につき1回パワーアップなので4で割った値を追加
	powerUp += total / WRONG_NEED;
	printf("%d", powerUp);
	return 0;
}
            
            
            
        