Submission #773299

#TimeUsernameProblemLanguageResultExecution timeMemory
773299BT21tataPassword (RMI18_password)C++17
30 / 100
82 ms436 KiB
#include <bits/stdc++.h> using namespace std; struct cmp { bool operator()(const string &a, const string &b) { return a.size()>b.size(); } }; int query(string str); string mrg(string &a, string &b) { string ret; int pos1=0, pos2=0; while(true) { if(pos1==a.size() or pos2==b.size()) break; string cur=ret; cur+=a[pos1]; for(int i=pos2; i<b.size(); i++) cur+=b[i]; int q=query(cur); if(q==pos1+b.size()+1) ret+=a[pos1++]; else ret+=b[pos2++]; } while(pos1<a.size()) ret+=a[pos1++]; while(pos2<b.size()) ret+=b[pos2++]; return ret; } string guess(int n, int s) { priority_queue<string, vector<string>, cmp>q; for(int i=0; i<s; i++) { string ss, sec; for(int j=0; j<n; j++) ss+=(char)(i+'a'); int ret=query(ss); if(!ret) continue; for(int j=0; j<ret; j++) sec+=(char)(i+'a'); q.push(sec); } while(q.size()>1) { string s1=q.top(); q.pop(); string s2=q.top(); q.pop(); string merged=mrg(s1, s2); q.push(merged); } return q.top(); }

Compilation message (stderr)

password.cpp: In function 'std::string mrg(std::string&, std::string&)':
password.cpp:20:13: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   20 |      if(pos1==a.size() or pos2==b.size()) break;
      |         ~~~~^~~~~~~~~~
password.cpp:20:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   20 |      if(pos1==a.size() or pos2==b.size()) break;
      |                           ~~~~^~~~~~~~~~
password.cpp:23:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   23 |      for(int i=pos2; i<b.size(); i++)
      |                      ~^~~~~~~~~
password.cpp:26:10: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   26 |      if(q==pos1+b.size()+1)
      |         ~^~~~~~~~~~~~~~~~~
password.cpp:30:14: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   30 |    while(pos1<a.size()) ret+=a[pos1++];
      |          ~~~~^~~~~~~~~
password.cpp:31:14: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   31 |    while(pos2<b.size()) ret+=b[pos2++];
      |          ~~~~^~~~~~~~~
#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...