Submission #755892

# Submission time Handle Problem Language Result Execution time Memory
755892 2023-06-10T17:25:19 Z vjudge1 Password (RMI18_password) C++17
0 / 100
324 ms 564 KB
#include <bits/stdc++.h>

using namespace std;

#ifdef LOCAL
#include "C:\GCC\debug.h"
#else
#define debug(...) void(42)
#endif

string hidden;
/*

int query(string str) {
  // cout << str << endl;
  int ptr = 0;

  for (int i = 0; i < (int) str.length(); i++) {
    while (ptr < (int) hidden.length() && hidden[ptr] != str[i]) {
      ++ptr;
    }
    if (ptr == (int) hidden.length()) {
      return i;
    }
    ptr++;
  }
}
*/

int query(string str);

string guess(int n, int s) {
  string endChars;

  vector<int> freq(s);
  for (int i = 0; i < s; i++) {
    string str;
    for (int it = 0; it < n; it++) {
      str += (i + 'a');
    }
    freq[i] = query(str);
    if (freq[i] == n) {
      return str;
    }
  }

  for (int pos = n - 1; pos >= 0; pos--) {
    for (int i = 0; i < s; i++) {
      string build;
      for (int it = 0; it < freq[i]; it++) {
        build += (i + 'a');
      }
      bool work = true;

      if ((int) build.length() < pos + 1) {
        for (int j = 0; j < s; j++) {
          string tmp;
          tmp += build;
          tmp += (j + 'a');
          tmp += endChars;

          if (query(tmp) == (int) tmp.length()) {
            work = false;
            break;
          }
        }
      }

      if (work) {
        freq[i] -= 1;
        endChars.insert(endChars.begin(), i + 'a');
        break;
      }
    }
  }
  return endChars;
}


/*
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
   
  int times = 100;
  while (times--) {
    mt19937 rng((unsigned int) chrono::steady_clock::now().time_since_epoch().count());
    hidden.clear();

    int n = rng() % 100 + 1;
    for (int i = 0; i < n; i++) {
      hidden += ((rng() % 26) + 'a');
    }
    string str = guess(n, 26);
    assert(str == hidden);
  }
  return 0;
}
*/
# Verdict Execution time Memory Grader output
1 Runtime error 6 ms 208 KB Execution killed with signal 13
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 208 KB Guessed the password with 144 queries.
2 Runtime error 4 ms 208 KB Execution killed with signal 13
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 324 ms 564 KB Execution killed with signal 13
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 6 ms 208 KB Execution killed with signal 13
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 6 ms 208 KB Execution killed with signal 13
2 Halted 0 ms 0 KB -