結果
| 問題 |
No.1747 Many Formulae 2
|
| コンテスト | |
| ユーザー |
kokatsu
|
| 提出日時 | 2021-11-19 21:38:24 |
| 言語 | D (dmd 2.109.1) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 2,000 ms |
| コード長 | 773 bytes |
| コンパイル時間 | 1,481 ms |
| コンパイル使用メモリ | 169,044 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-06-22 13:19:08 |
| 合計ジャッジ時間 | 2,173 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 19 |
ソースコード
import std;
void main() {
string S = readln.chomp;
ulong N = S.length;
long[long] list;
void f(long num, long plus, ulong cnt) {
if (cnt == N) {
++list[num+plus];
}
else {
long d = S[cnt] - '0';
f(num+plus*10+d, 0, cnt+1);
f(num, plus*10+d, cnt+1);
}
}
f(0L, 0L, 0L);
long res;
foreach (val; list.byValue) {
res += val / 2;
}
foreach (key; list.byKey) {
if (key == 1) {
res -= list[key] / 2;
}
long m = 2;
while (m * m <= key) {
if (key % m == 0) {
res -= list[key] / 2;
break;
}
++m;
}
}
res.writeln;
}
kokatsu