結果
| 問題 |
No.346 チワワ数え上げ問題
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-02-27 22:37:08 |
| 言語 | D (dmd 2.109.1) |
| 結果 |
AC
|
| 実行時間 | 21 ms / 2,000 ms |
| コード長 | 697 bytes |
| コンパイル時間 | 2,768 ms |
| コンパイル使用メモリ | 165,888 KB |
| 実行使用メモリ | 6,912 KB |
| 最終ジャッジ日時 | 2024-06-12 03:11:11 |
| 合計ジャッジ時間 | 4,088 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 23 |
ソースコード
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 = readln.chomp.split(string.init).to!(dchar[]);
size_t idx;
size_t count;
ulong ws;
foreach_reverse (c; cwws) {
if (cwws.length - 2 < idx) {
break;
}
if (c == 'c') {
count += ws.c(2);
} else if (c == 'w'){
ws++;
}
idx++;
}
writeln(count);
}