답안 #642621

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

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

    for(auto x: v) {
        char c = x.second;
        int cnt = x.first;
        vector<int> add(sz(ans) + 5, 0);
        for(int i = 0; i <= sz(ans); ++i) {
            string bruh = "";
            for(int j = 0; j < i; ++j) bruh += ans[j];
            for(int j = 0; j < cnt; ++j) bruh += c;
            for(int j = i; j < sz(ans); ++j) bruh += ans[j];
            int qr = query(bruh);
            add[i] = qr - sz(ans);
            cnt -= add[i];
            if(cnt <= 0) break;
        }
        string newans = "";
        for(int i = 0; i <= sz(ans); ++i) {
            for(int j = 0; j < add[i]; ++j) newans += c;
            if(i < sz(ans)) newans += ans[i];
        }
        ans = newans;
    }
    return ans;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 208 KB Returned early from guess() after 16 queries.
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 208 KB Returned early from guess() after 3 queries.
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 208 KB Returned early from guess() after 13 queries.
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 208 KB Returned early from guess() after 16 queries.
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 208 KB Returned early from guess() after 16 queries.
2 Halted 0 ms 0 KB -