結果
| 問題 |
No.2201 p@$$w0rd
|
| コンテスト | |
| ユーザー |
nono00
|
| 提出日時 | 2023-02-10 01:31:28 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 2,000 ms |
| コード長 | 1,277 bytes |
| コンパイル時間 | 1,971 ms |
| コンパイル使用メモリ | 206,372 KB |
| 最終ジャッジ日時 | 2025-02-10 11:51:36 |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 24 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
#define rep(i, l, r) for (int i = (int)(l); i < (int)(r); i++)
#define rrep(i, r, l) for (int i = (int)(r); i > (int)(l); i--)
#define all(a) (a).begin(), (a).end()
#define rall(a) (a).rbegin(), (a).rend()
void solve() {
int n = 8;
string s;
cin >> s;
map<char, char> change = {{'l', '1'}, {'o', '0'}, {'a', '@'}, {'s', '$'}};
set<string> ans;
auto f = [&](char c) -> char {
if (change.find(c) == change.end()) {
return c;
} else {
return change[c];
}
};
rep(bit, 0, 1 << n) {
string t;
bool num = false;
bool chr = false;
bool syn = false;
rep(i, 0, n) {
char c = s[i];
if (bit & (1 << i)) {
c = f(s[i]);
}
if (c == '1' || c == '0') {
num = true;
} else if (c == '@' || c == '$') {
syn = true;
} else {
chr = true;
}
t.push_back(c);
}
if (num && syn && chr) {
ans.insert(t);
}
}
cout << ans.size() << '\n';
}
int main() {
int q = 1;
// cin >> q;
while (q--) {
solve();
}
}
nono00