# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
520398 | Alex_tz307 | Password (RMI18_password) | C++17 | 490 ms | 96148 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.
#include <bits/stdc++.h>
using namespace std;
struct sir {
string s;
sir() : s("") {}
bool operator < (const sir &a) const {
return s.size() > a.s.size();
};
};
int query(string);
string guess(int n, int m) {
priority_queue<sir> pq;
int sum_freq = 0;
for (int i = 0; i <= m - 1; ++i) {
char c = i + 97;
int freq;
if (i <= m - 2) {
string aux = "";
for (int j = 0; j <= n - 1; ++j) {
aux += c;
}
sum_freq += query(aux);
} else {
freq = n - sum_freq;
}
sir a;
for (int j = 0; j <= freq - 1; ++j) {
a.s += c;
}
pq.push(a);
}
while ((int)pq.size() >= 2) {
sir a = pq.top();
pq.pop();
sir b = pq.top();
pq.pop();
sir c;
while (a.s.empty() == false && b.s.empty() == false) {
string aux = "";
aux += c.s;
aux += a.s[0];
aux += b.s;
if (query(aux) == 1 + c.s.size() + b.s.size()) {
c.s += a.s[0];
a.s.erase(a.s.begin());
} else {
c.s += b.s[0];
b.s.erase(b.s.begin());
}
}
c.s += a.s;
c.s += b.s;
pq.push(c);
}
query(pq.top().s);
}
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... |