結果

問題 No.145 yukiover
ユーザー te-shte-sh
提出日時 2017-02-01 15:59:10
言語 D
(dmd 2.106.1)
結果
WA  
実行時間 -
コード長 1,157 bytes
コンパイル時間 634 ms
コンパイル使用メモリ 97,708 KB
実行使用メモリ 6,944 KB
最終ジャッジ日時 2024-06-12 06:50:14
合計ジャッジ時間 1,361 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
6,816 KB
testcase_01 AC 1 ms
6,940 KB
testcase_02 AC 2 ms
6,944 KB
testcase_03 AC 1 ms
6,944 KB
testcase_04 AC 1 ms
6,944 KB
testcase_05 AC 1 ms
6,944 KB
testcase_06 AC 1 ms
6,944 KB
testcase_07 AC 1 ms
6,944 KB
testcase_08 AC 1 ms
6,944 KB
testcase_09 AC 1 ms
6,940 KB
testcase_10 WA -
testcase_11 AC 1 ms
6,944 KB
testcase_12 AC 1 ms
6,940 KB
testcase_13 AC 1 ms
6,940 KB
testcase_14 AC 2 ms
6,940 KB
testcase_15 AC 2 ms
6,944 KB
testcase_16 AC 1 ms
6,940 KB
testcase_17 WA -
testcase_18 WA -
testcase_19 AC 2 ms
6,940 KB
testcase_20 AC 1 ms
6,940 KB
testcase_21 AC 2 ms
6,944 KB
testcase_22 AC 1 ms
6,944 KB
testcase_23 AC 2 ms
6,940 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

import std.algorithm, std.conv, std.range, std.stdio, std.string;

void main()
{
  auto n = readln.chomp.to!size_t;
  auto s = readln.chomp;

  // abcdefghijklmnopqrstuvwxyz
  // 01234567890123456789012345
  auto ca = 0, ci = 8, ck = 10, cu = 20, cy = 24, cz = 25;

  auto hi = new int[](26);
  foreach (c; s) ++hi[c - 'a'];

  auto r = 0;

  auto rz = hi[cz];
  hi[cz] -= rz;
  r += rz;

  auto ry = hi[cy];
  hi[cy] -= ry;

  foreach (c; cu+1..cz+1) {
    auto ry_ = min(ry, hi[c]);
    hi[c] -= ry_;
    ry -= ry_;
    r += ry_;
  }

  auto ryu = min(ry, hi[cu]);
  hi[cu] -= ryu;
  ry -= ryu;

  foreach (c; ck+1..cz+1) {
    auto ryu_ = min(ryu, hi[c]);
    hi[c] -= ryu_;
    ryu -= ryu_;
    r += ryu_;
  }

  auto ryuk = min(ryu, hi[ck]);
  hi[ck] -= ryuk;
  ryu -= ryuk;

  foreach (c; ci+1..cz+1) {
    auto ryuk_ = min(ryuk, hi[c]);
    hi[c] -= ryuk_;
    ryuk -= ryuk_;
    r += ryuk_;
  }

  auto ryuki = min(ryuk, hi[ci]);
  hi[ci] -= ryuki;
  ryuk -= ryuki;

  foreach (c; ca..cz+1) {
    auto ryuki_ = min(ryuki, hi[c]);
    hi[c] -= ryuki_;
    ryuki -= ryuki_;
    r += ryuki_;
  }

  r += (ry + ryu + ryuk + ryuki) / 2;

  writeln(r);
}
0