Submission #756907

#TimeUsernameProblemLanguageResultExecution timeMemory
756907ElyesChaabouniPassword (RMI18_password)C++17
10 / 100
305 ms4304 KiB
#include <bits/stdc++.h>
 
using namespace std;
vector<int> freq(1000005);
int query(string str);
 
string guess(int n, int s) {
  string endChars;
 
  
  for (int i = 0; i < s; i++) {
    string str;
    for (int it = 0; it < n; it++) {
      str += (i + 'a');
    }
    freq[i] = query(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;
          string nEnd;
          nEnd += (i + 'a');
          nEnd += endChars;
          swap(nEnd, endChars);
          break;
        }
      }
    }
  }
  return endChars;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...