Submission #1117351

#TimeUsernameProblemLanguageResultExecution timeMemory
1117351UnconcurrentPassword (RMI18_password)C++17
0 / 100
3 ms440 KiB
// (C) Sologub Radu #include <iostream> #include <cmath> #include <vector> #include <fstream> #include <algorithm> #include <iomanip> // for std::setw and std::setfill #include <map> using namespace std; int query( string str) ; string guess(int len, int alphabet){ string guess = "a"; // first char guess while(query(guess) != 1){ guess[0]++; } forward_looking: // forward looking char forwardGuess = 'a' - 1 + alphabet; while(forwardGuess < 'a' + alphabet && guess.size() <= len && query(guess + forwardGuess) < guess.size() + 1){ forwardGuess--; } if(forwardGuess >= 'a' + alphabet){ // failed forward look, skip; }else{ // success guess = guess + forwardGuess; // cout << guess << endl; goto forward_looking; } int backInsertIndex = guess.size() - 1; back_inserter: if(guess.size() == len){ return guess; } string backGuess = "a"; backGuess[0]--; string guessTry; do{ guessTry = guess; backGuess[0]++; guessTry.insert(backInsertIndex, backGuess); // cout << "guessTry = " << guessTry << endl; }while(backGuess[0] < 'a' + alphabet && guess.size() <= len && query(guessTry) < guess.size() + 1); if(backGuess[0] >= 'a' + alphabet){ // failed back insert at index; backInsertIndex --; if(backInsertIndex < 0){ backInsertIndex = guess.size() - 1; } }else{ // success // backInsertIndex --; guess = guess.insert(backInsertIndex, backGuess); // cout << guess << endl; } goto back_inserter; }

Compilation message (stderr)

password.cpp: In function 'std::string guess(int, int)':
password.cpp:24:57: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   24 |     while(forwardGuess < 'a' + alphabet && guess.size() <= len && query(guess + forwardGuess) < guess.size() + 1){
      |                                            ~~~~~~~~~~~~~^~~~~~
password.cpp:24:95: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   24 |     while(forwardGuess < 'a' + alphabet && guess.size() <= len && query(guess + forwardGuess) < guess.size() + 1){
      |                                                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
password.cpp:40:21: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   40 |     if(guess.size() == len){
      |        ~~~~~~~~~~~~~^~~~~~
password.cpp:54:29: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   54 |             && guess.size() <= len
      |                ~~~~~~~~~~~~~^~~~~~
password.cpp:55:28: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   55 |         && query(guessTry) < guess.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...