結果

問題 No.204 ゴールデン・ウィーク(2)
コンテスト
ユーザー ゴリポン先生
提出日時 2026-02-20 15:51:23
言語 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
結果
WA  
実行時間 -
コード長 721 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 1,391 ms
コンパイル使用メモリ 171,360 KB
実行使用メモリ 7,848 KB
最終ジャッジ日時 2026-02-20 15:51:29
合計ジャッジ時間 3,886 ms
ジャッジサーバーID
(参考情報)
judge3 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 35 WA * 9 RE * 2
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

module main;

import std;

void main()
{
	// 入力
	int D = readln.chomp.to!int;
	auto C = readln.chomp ~ readln.chomp;
	// 答えの計算
	auto E = C.group.array;
	// 最初と最後の平日を取り除く
	if (E.front[0] == 'x') E.popFront;
	if (E.back[0] == 'x') E.popBack;
	// 連続する休日のグループ
	auto holiday = E.filter!(a => a[0] == 'o').array;
	// 連続する平日のグループ
	auto weekday = E.filter!(a => a[0] == 'x').array;
	assert(holiday.length == weekday.length + 1);
	auto ans = max(D + holiday[0][1], holiday[$ - 1][1] + D);
	foreach (i; 0 .. holiday.length - 1) {
		ans = max(ans, holiday[i][1] + min(D, weekday[i][1]) + holiday[i + 1][1]);
	}
	// 答えの出力
	writeln(ans);
}
0