結果

問題 No.281 門松と魔法(1)
コンテスト
ユーザー ゴリポン先生
提出日時 2026-06-27 17:36:20
言語 D
(dmd 2.112.0)
コンパイル:
dmd -fPIE -m64 -w -wi -O -release -inline -I/opt/dmd/src/druntime/import/ -I/opt/dmd/src/phobos -L-L/opt/dmd/linux/lib64/ -fPIC _filename_
実行:
./Main
結果
TLE  
実行時間 -
コード長 678 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 673 ms
コンパイル使用メモリ 172,664 KB
実行使用メモリ 15,872 KB
最終ジャッジ日時 2026-06-27 17:36:42
合計ジャッジ時間 5,507 ms
ジャッジサーバーID
(参考情報)
judge1_1 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other TLE * 1 -- * 56
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

module main;

import std;

void main()
{
	// 入力
	int d = readln.chomp.to!int;
	int H1 = readln.chomp.to!int;
	int H2 = readln.chomp.to!int;
	int H3 = readln.chomp.to!int;
	// 答えの計算と出力
	if (H2 == 0 && (H1 == 0 || H3 == 0)) {
		writeln(-1);
		return;
	}
	// H2を一番高くする場合
	int ans1 = 0, h1 = H1, h2 = H2, h3 = H3;
	while (h1 >= h2) {
		h1 = max(0, h1 - d);
		ans1++;
	}
	while (h3 >= h2) {
		h3 = max(0, h3 - d);
		ans1++;
	}
	// H2を一番低くする場合
	int ans2 = 0;
	h1 = H1, h2 = H2, h3 = H3;
	while (h1 <= h2) {
		h2 = max(0, h2 - d);
		ans2++;
	}
	while (H3 <= H2) {
		h2 = max(0, h2 - d);
		ans2++;
	}
	writeln(min(ans1, ans2));
}
0