結果
| 問題 |
No.346 チワワ数え上げ問題
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-02-27 22:23:01 |
| 言語 | D (dmd 2.109.1) |
| 結果 |
TLE
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 869 bytes |
| コンパイル時間 | 2,432 ms |
| コンパイル使用メモリ | 167,340 KB |
| 実行使用メモリ | 9,616 KB |
| 最終ジャッジ日時 | 2024-06-12 03:09:28 |
| 合計ジャッジ時間 | 8,706 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 21 TLE * 2 |
ソースコード
import std.algorithm,
std.string,
std.range,
std.stdio,
std.conv;
ulong factorial(ulong n) {
ulong t = 1;
for (ulong i; i < n; i++)
t *= (n - i);
return t;
}
ulong p(ulong n, ulong r) {
ulong t = 1;
for (ulong i; i < r; i++)
t *= (n - i);
return t;
}
ulong c(ulong n, ulong r) {
return p(n, r) / r.factorial;
}
void main() {
dchar[] cwws;
size_t idx;
size_t count;
foreach (c; readln.chomp.split(string.init).to!(dchar[])) {
if (c == 'c' || c == 'w') {
cwws ~= c;
}
}
foreach (c; cwws) {
if (cwws.length - 2 < idx) {
break;
}
if (c == 'c') {
ulong ws;
foreach (w; cwws[(idx + 1)..$])
if (w == 'w')
ws++;
if (1 < ws) {
count += ws.c(2);
} else {
break;
}
}
idx++;
}
writeln(count);
}