제출 #501110

#제출 시각아이디문제언어결과실행 시간메모리
501110LucaIliePassword (RMI18_password)C++17
0 / 100
29 ms288 KiB
#include <iostream>

using namespace std;

string ans, q;

int query( string p );

char guess_kth( int k, int left, int right ) {
    int mid, i;

    if ( left == right )
        return left;

    mid = (left + right) / 2;
    q = ans;
    for ( i = left; i <= mid; i++ )
        q += i + 'a';

    if ( query( q ) > k )
        return guess_kth( k, left, mid );
    return guess_kth( k, mid + 1, right );
}

string guess( int n, int s ) {
    char ch;
    int i;

    ans = "";
    for ( i = 0; i < n - s; i++ )
        ans += guess_kth( i, 0, s - 1 ) + 'a';
    for ( i = n - s; i < n; i++ ) {
        ch = 'a';
        while ( query( ans + ch ) < i )
            ch++;
        ans += ch;
    }

    return ans;
}
#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...