Submission #755907

# Submission time Handle Problem Language Result Execution time Memory
755907 2023-06-10T17:36:13 Z vjudge1 Password (RMI18_password) C++14
Compilation error
0 ms 0 KB
#include <bits/stdc++.h>

using namespace std;

/*
string hidden;
int nn;
int ss;
int cnt = 0;


int query(string str) {
  ++cnt;
  assert((int) str.size() <= nn);
  for (auto c : str) {
    assert(c - 'a' <= ss);
  }
  // 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) {
  nn = n;
  ss = 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++) {
      if (freq[i] > 0) {
        string build;
        for (int it = 0; it < freq[i]; it++) {
          build += (i + 'a');
        }
        bool work = true;

        if ((int) build.size() + 1 + (int) endChars.size() <= n) {
          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() % 4) + 'a');
    }
    string str = guess(n, 4);
    debug(str, hidden);
    debug(cnt);
    assert(str == hidden);
    cnt = 0;
  }
  return 0;
}
*/

Compilation message

password.cpp: In function 'std::string guess(int, int)':
password.cpp:36:3: error: 'nn' was not declared in this scope; did you mean 'n'?
   36 |   nn = n;
      |   ^~
      |   n
password.cpp:37:3: error: 'ss' was not declared in this scope; did you mean 's'?
   37 |   ss = s;
      |   ^~
      |   s