Submission #709222

#TimeUsernameProblemLanguageResultExecution timeMemory
709222hmm789Password (RMI18_password)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; #define int long long string guess(int n, int s) { int cnt = 1; string ans = ""; pair<int, int> occ[s]; for(int i = 0; i < s; i++) { int l = 1, r = n+1; while(l < r) { int m = (l+r)/2; string s; for(int j = 0; j < m; j++) s += (char)('a'+i); //~ cout << "q" << cnt << ": " << s << endl; if(query(s) == m) l = m+1; else r = m; } occ[i].first = l-1; occ[i].second = i; //~ cout << "a " << i << " " << l-1 << endl; } sort(occ, occ+s); for(int i = 0; i < occ[0].first; i++) ans += (char)('a'+occ[0].second); for(int i = 1; i < s; i++) { //~ cout << "s" << i << ": " << ans << endl; int tmpcnt[ans.size()+1], sm = 0; memset(tmpcnt, 0, sizeof(tmpcnt)); for(int j = ans.size(); j >= 0; j--) { int l = sm+1, r = occ[i].first+1; while(l < r) { int m = (l+r)/2; string tmp = ""; for(int k = 0; k < j; k++) tmp += ans[k]; for(int k = 0; k < m; k++) tmp += (char)('a'+occ[i].second); if(query(tmp) == tmp.size()) l = m+1; else r = m; } tmpcnt[j] = l-1-sm; sm += l-1-sm; } string tmp = ""; for(int j = 0; j < ans.size(); j++) tmp += ans[j]; //~ cout << "s" << i << ": " << tmp << endl; ans = ""; for(int j = 0; j < tmpcnt[0]; j++) ans += (char)('a'+occ[i].second); for(int j = 1; j <= tmp.size(); j++) { //~ cout << "s" << i << "(" << j << "): " << ans << endl; ans += tmp[j-1]; for(int k = 0; k < tmpcnt[j]; k++) ans += (char)('a'+occ[i].second); } //~ cout << "s" << i << ": " << ans << endl; } return ans; }

Compilation message (stderr)

password.cpp: In function 'std::string guess(long long int, long long int)':
password.cpp:17:7: error: 'query' was not declared in this scope
   17 |    if(query(s) == m) l = m+1;
      |       ^~~~~
password.cpp:37:8: error: 'query' was not declared in this scope
   37 |     if(query(tmp) == tmp.size()) l = m+1;
      |        ^~~~~
password.cpp:44:20: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   44 |   for(int j = 0; j < ans.size(); j++) tmp += ans[j];
      |                  ~~^~~~~~~~~~~~
password.cpp:48:20: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |   for(int j = 1; j <= tmp.size(); j++) {
      |                  ~~^~~~~~~~~~~~~
password.cpp:6:6: warning: unused variable 'cnt' [-Wunused-variable]
    6 |  int cnt = 1;
      |      ^~~