結果
問題 |
No.2201 p@$$w0rd
|
ユーザー |
![]() |
提出日時 | 2024-01-02 00:33:59 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 1,020 bytes |
コンパイル時間 | 2,484 ms |
コンパイル使用メモリ | 198,352 KB |
最終ジャッジ日時 | 2025-02-18 15:49:14 |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 24 |
ソースコード
#include <bits/stdc++.h> using namespace std; #ifdef LOCAL #include "settings/debug.cpp" #define _GLIBCXX_DEBUG #else #define Debug(...) void(0) #endif #define rep(i, n) for (int i = 0; i < (n); ++i) using ll = long long; using ull = unsigned long long; int main() { string s; cin >> s; set<string> st; rep(bit, 1 << s.size()) { string t = ""; rep(i, s.size()) { if (bit & (1 << i)) { if (s[i] == 'l') t += '1'; else if (s[i] == 'o') t += '0'; else if (s[i] == 'a') t += '@'; else if (s[i] == 's') t += '$'; else t += s[i]; } else { t += s[i]; } } bool ok_alpha = false, ok_num = false, ok_sym = false; rep(i, t.size()) { if (isalpha(t[i])) ok_alpha = true; else if (isdigit(t[i])) ok_num = true; else ok_sym = true; } if (ok_alpha && ok_num && ok_sym) st.insert(t); } cout << st.size() << endl; return 0; }