# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1117345 | Unconcurrent | Password (RMI18_password) | C++17 | 6 ms | 336 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
// (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';
while(query(guess + forwardGuess) < guess.size() + 1 && forwardGuess < 'a' + alphabet){
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
&& 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)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |