結果
問題 | No.8051 cracked |
ユーザー |
|
提出日時 | 2021-10-22 13:54:18 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 525 ms / 1,024 ms |
コード長 | 1,590 bytes |
コンパイル時間 | 825 ms |
コンパイル使用メモリ | 68,724 KB |
実行使用メモリ | 25,488 KB |
平均クエリ数 | 3.00 |
最終ジャッジ日時 | 2024-07-22 23:58:12 |
合計ジャッジ時間 | 15,304 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 24 |
ソースコード
#include <iostream> #include <string> using namespace std; string source="#include <iostream>\n#include <string>\nusing namespace std;\nstring source=\"@\";\nstring replace_all(string str, string c, string r){\n string ret = \"\";\n for(char s : str)\n if(s == c[0]) ret += r;\n else ret += s;\n return ret;\n}\nstring build(string str){\n string ret=str;\n str=replace_all(str, \"\\\\\", \"\\\\\\\\\");\n str=replace_all(str, \"\\n\", \"\\\\n\");\n str=replace_all(str, \"\\\"\", \"\\\\\\\"\");\n ret=replace_all(ret, \"\\x40\", str);\n return ret;\n}\nint main(){\n string str = build(source);\n for(int i=0; i<str.length(); i++){\n char c = getchar();\n if(c != str[i]){\n cout << i << endl << (char)34 << str[i] << (char)34 << endl << (char)34 << c << (char)34 << endl;\n break;\n }\n }\n return 0;\n}"; string replace_all(string str, string c, string r){ string ret = ""; for(char s : str) if(s == c[0]) ret += r; else ret += s; return ret; } string build(string str){ string ret=str; str=replace_all(str, "\\", "\\\\"); str=replace_all(str, "\n", "\\n"); str=replace_all(str, "\"", "\\\""); ret=replace_all(ret, "\x40", str); return ret; } int main(){ string str = build(source); for(int i=0; i<str.length(); i++){ char c = getchar(); if(c != str[i]){ cout << i << endl << (char)34 << str[i] << (char)34 << endl << (char)34 << c << (char)34 << endl; break; } } return 0; }