Submission #755892

#TimeUsernameProblemLanguageResultExecution timeMemory
755892vjudge1Password (RMI18_password)C++17
0 / 100
324 ms564 KiB
#include <bits/stdc++.h> using namespace std; #ifdef LOCAL #include "C:\GCC\debug.h" #else #define debug(...) void(42) #endif string hidden; /* int query(string str) { // cout << str << endl; int ptr = 0; for (int i = 0; i < (int) str.length(); i++) { while (ptr < (int) hidden.length() && hidden[ptr] != str[i]) { ++ptr; } if (ptr == (int) hidden.length()) { return i; } ptr++; } } */ int query(string str); string guess(int n, int s) { string endChars; vector<int> freq(s); for (int i = 0; i < s; i++) { string str; for (int it = 0; it < n; it++) { str += (i + 'a'); } freq[i] = query(str); if (freq[i] == n) { return str; } } for (int pos = n - 1; pos >= 0; pos--) { for (int i = 0; i < s; i++) { string build; for (int it = 0; it < freq[i]; it++) { build += (i + 'a'); } bool work = true; if ((int) build.length() < pos + 1) { for (int j = 0; j < s; j++) { string tmp; tmp += build; tmp += (j + 'a'); tmp += endChars; if (query(tmp) == (int) tmp.length()) { work = false; break; } } } if (work) { freq[i] -= 1; endChars.insert(endChars.begin(), i + 'a'); break; } } } return endChars; } /* int main() { ios::sync_with_stdio(false); cin.tie(0); int times = 100; while (times--) { mt19937 rng((unsigned int) chrono::steady_clock::now().time_since_epoch().count()); hidden.clear(); int n = rng() % 100 + 1; for (int i = 0; i < n; i++) { hidden += ((rng() % 26) + 'a'); } string str = guess(n, 26); assert(str == hidden); } return 0; } */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...