Submission #642653

#TimeUsernameProblemLanguageResultExecution timeMemory
642653SlavicGPassword (RMI18_password)C++17
0 / 100
423 ms432 KiB
#include "bits/stdc++.h" using namespace std; int query(string str); #define sz(a) (int)a.size() mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); string guess(int n, int s) { vector<pair<int, char>> v; for(int f = 0; f < s; ++f) { char c = char('a' + f); string paiu = string(n, c); int x = query(paiu); if(x > 0) { v.push_back({x, c}); } } assert(v.size() > 0); sort(v.begin(), v.end()); string ans = string(v[0].first, v[0].second); v.erase(v.begin()); assert(sz(ans) > 0); if(!sz(v)) return ans; for(auto noo: v) { char c = noo.second; int cnt = noo.first; string ff = ans; string bruh = ""; for(int i = 0; i <= sz(ff); ++i) { int lol = 0, l = 0, r = cnt; string rem = bruh; while(l <= r) { int mid = l + r >> 1; bruh = rem; for(int j = 0; j < mid; ++j) bruh += c; for(int k = i; k < sz(ff); ++k) { bruh += ff[k]; } if(query(bruh) == sz(bruh)) { lol = mid; l = mid + 1; } else r = mid - 1; } cnt -= lol; bruh = rem; for(int j = 0; j < lol; ++j) bruh += c; if(i < sz(ff)) bruh += ff[i]; } ans = bruh; } return ans; }

Compilation message (stderr)

password.cpp: In function 'std::string guess(int, int)':
password.cpp:34:29: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   34 |                 int mid = l + r >> 1;
      |                           ~~^~~
#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...