Submission #641171

#TimeUsernameProblemLanguageResultExecution timeMemory
641171Tenis0206Password (RMI18_password)C++14
50 / 100
449 ms456 KiB
#include <bits/stdc++.h> //#define home using namespace std; int query(string s); #ifdef home string str; int query(string s) { int j = 0; for(int i=0; i<s.size(); i++) { while(j<str.size() && s[i]!=str[j]) { ++j; } if(j==str.size()) { return i; } ++j; } return s.size(); } #endif // home string s[205]; struct cmp { bool operator()(int a, int b) { return s[a].size() < s[b].size(); } }; string Merge(string a, string b) { int i = 0, j = 0; string rez; while(i<a.size() && j<b.size()) { string aux = rez + a[i]; for(int p=j; p<b.size(); p++) { aux.push_back(b[p]); } int nr = query(aux); if(nr==aux.size()) { rez.push_back(a[i]); ++i; } else { rez.push_back(b[j]); ++j; } } while(i<a.size()) { rez.push_back(a[i]); ++i; } while(j<b.size()) { rez.push_back(b[j]); ++j; } return rez; } priority_queue<int,vector<int>,cmp> h; string guess(int n, int cr) { int cnt = 0; for(int c='a'; c<='a'+cr-1; c++) { string aux; for(int j=1; j<=n; j++) { aux.push_back(c); } int nr = query(aux); ++cnt; for(int j=1; j<=nr; j++) { s[cnt].push_back(c); } if(s[cnt].size() > 0) { h.push(cnt); } } while(h.size() > 1) { int poz1 = h.top(); h.pop(); int poz2 = h.top(); h.pop(); s[poz1] = Merge(s[poz1],s[poz2]); h.push(poz1); } return s[h.top()]; } #ifdef home int main() { cin>>str; cout<<guess(str.size(),4)<<'\n'; return 0; } #endif // home

Compilation message (stderr)

password.cpp: In function 'std::string Merge(std::string, std::string)':
password.cpp:47:12: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |     while(i<a.size() && j<b.size())
      |           ~^~~~~~~~~
password.cpp:47:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |     while(i<a.size() && j<b.size())
      |                         ~^~~~~~~~~
password.cpp:50:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   50 |         for(int p=j; p<b.size(); p++)
      |                      ~^~~~~~~~~
password.cpp:55:14: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   55 |         if(nr==aux.size())
      |            ~~^~~~~~~~~~~~
password.cpp:66:12: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   66 |     while(i<a.size())
      |           ~^~~~~~~~~
password.cpp:71:12: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   71 |     while(j<b.size())
      |           ~^~~~~~~~~
#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...