結果
問題 |
No.3210 Fixed Sign Sequense
|
ユーザー |
![]() |
提出日時 | 2025-07-31 21:29:11 |
言語 | D (dmd 2.109.1) |
結果 |
AC
|
実行時間 | 4 ms / 2,000 ms |
コード長 | 716 bytes |
コンパイル時間 | 1,772 ms |
コンパイル使用メモリ | 60,892 KB |
実行使用メモリ | 7,720 KB |
最終ジャッジ日時 | 2025-07-31 21:29:15 |
合計ジャッジ時間 | 4,224 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 38 |
ソースコード
import std.stdio, std.algorithm, std.array, std.conv, std.typecons; alias Set = bool[3 * 10^^5]; void main() { readln; readln[0..$-1].solve.writeln; } uint solve(string str) { uint m, z, p, mz, mp, zp, mzp; foreach (c; str) switch (c) { case '-': m += 1; // --- - mp = max(m, mp); // ---+++ ------ break; case '0': z = 1; zp = max(1, zp); // 0+++ mz = m+1; // ---0 mzp = max(mz, mzp); // ---0+++ break; case '+': p += 1; // +++ + mp += 1; // --- zp += 1; // 0+++ mzp += 1; // ---000+++ break; default: assert(0); } assert (max(p, mp, zp, mzp) == max(m, z, p, mz, mp, zp, mzp)); return max(m, z, p, mz, mp, zp, mzp); }