Submission #248785

#TimeUsernameProblemLanguageResultExecution timeMemory
248785egekabasPassword (RMI18_password)C++14
100 / 100
262 ms728 KiB
#include <bits/stdc++.h> #define ff first #define ss second #define pb push_back #define mp make_pair using namespace std; typedef long long ll; typedef unsigned long long ull; typedef long double ld; typedef pair<ll, ll> pll; typedef pair<ull, ull> pull; typedef pair<int, int> pii; typedef pair<ld, ld> pld; int query(string s); int N; string calc(int l, int r){ if(l == r){ string tmp; for(int i = 0; i < N; ++i) tmp.pb('a'+l); int cnt = query(tmp); return tmp.substr(0, cnt); } else{ int m = (l+r)/2; string s1 = calc(l, m); string s2 = calc(m+1, r); string s; reverse(s1.begin(), s1.end()); while(s1.size() || s2.size()){ if(s1.empty()){ s += s2; break; } if(s2.empty()){ reverse(s1.begin(), s1.end()); s += s1; break; } if(query(s+s1.back()+s2) == s.size()+s2.size()+1){ s += s1.back(); s1.pop_back(); } else{ reverse(s2.begin(), s2.end()); s += s2.back(); s2.pop_back(); reverse(s2.begin(), s2.end()); } } return s; } } string guess(int n, int s){ N = n; return calc(0, s-1); }

Compilation message (stderr)

password.cpp: In function 'std::__cxx11::string calc(int, int)':
password.cpp:40:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             if(query(s+s1.back()+s2) == s.size()+s2.size()+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...