# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
773132 | 2023-07-04T15:36:30 Z | TheSahib | Password (RMI18_password) | C++17 | 0 ms | 0 KB |
#include <bits/stdc++.h> #define ll long long #define pii pair<int, int> using namespace std; int cnt[30]; string guess(int n, int s){ for (int c = 'a'; c < 'a' + s; c++) { string a; for (int i = 0; i < n; i++) { a += c; } int b = query(a); cnt[c - 'a'] = b; } string ans; while(cnt[0]--){ ans += 'a'; } for(char c = 'b'; c < 'a' + s; c++){ while(cnt[c - 'a']--){ int l = 0, r = ans.size(); int a = 0; while(l <= r){ int mid = (l + r) / 2; string slice; for(int i = 0; i <= mid; i++){ slice += ans[i]; } slice += c; int b = query(slice); if(b == slice.size()){ l = mid + 1; a = mid; } else{ r = mid - 1; } } ans.insert(ans.begin() + a, c); } } return ans; }