답안 #642641

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
642641 2022-09-20T09:52:54 Z SlavicG Password (RMI18_password) C++17
10 / 100
2 ms 208 KB
#include "bits/stdc++.h"
using namespace std;
int query(string str);

#define sz(a) (int)a.size()

string guess(int n, int s) {
    vector<pair<int, char>> v;
    for(int f = 0; f < s; ++f) {
        char c = char('a' + f);
        string paiu = string(n, c);
        int x = query(paiu);
        if(x > 0) {
            v.push_back({x, c});
        }
    }
    assert(v.size() > 0);
    sort(v.begin(), v.end());
    string ans = string(v[0].first, v[0].second);
    v.erase(v.begin());
    assert(sz(ans) > 0);
    if(!sz(v)) return ans;

    for(auto noo: v) {
        char c = noo.second;
        int cnt = noo.first;
        vector<int> add(sz(ans) + 5, 0);
        string ff = ans;
        for(int i = 0; i <= sz(ff); ++i) {
            string bruh = "";
            for(int j = 0; j < i; ++j) bruh += ff[j];
            for(int j = 0; j < cnt; ++j) {
                bruh += c;
                string rem = bruh;
                for(int j = i; j < sz(ff); ++j) bruh += ff[j];
                int qr = query(bruh);
                if(qr - sz(ans) == j + 1) {
                    ans = bruh;
                    ++add[i];
                } else break;
                bruh = rem;
            }
            assert(add[i] >= 0);
            cnt -= add[i];
            assert(cnt >= 0);
            if(cnt <= 0) break;
        }
    }
    return ans;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 208 KB Guessed the password with 76 queries.
2 Correct 2 ms 208 KB Guessed the password with 187 queries.
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 208 KB Returned early from guess() after 29 queries.
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 208 KB Returned early from guess() after 100 queries.
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 208 KB Guessed the password with 76 queries.
2 Correct 2 ms 208 KB Guessed the password with 187 queries.
3 Incorrect 1 ms 208 KB Returned early from guess() after 29 queries.
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 208 KB Guessed the password with 76 queries.
2 Correct 2 ms 208 KB Guessed the password with 187 queries.
3 Incorrect 1 ms 208 KB Returned early from guess() after 29 queries.
4 Halted 0 ms 0 KB -