Submission #1118495

#TimeUsernameProblemLanguageResultExecution timeMemory
1118495somefolkPassword (RMI18_password)C++17
10 / 100
76 ms620 KiB
#include <iostream> #include <cmath> #include <algorithm> #include <string> #include <vector> #include <map> #include <unordered_map> #include <queue> #include <set> #include <unordered_set> #include <complex> #include <list> #include <chrono> #include <random> #include <stack> #include <iomanip> #include <fstream> using namespace std; #define endl "\n" // #define int long long const int INF = 2 * 1e5 + 5; const int MOD = 1e9 + 7; // int query(string s){ // int n; // cout << s; // cin >> n; // return n; // } int query(string s); string guess(int n, int s){ string sol = "", temp = ""; for(char i = 'a'; i < 'a'+s; i++){ string letter = string(n, i); int amount = query(letter); int initAmount = amount; if(amount == 0) continue; if(i == 'a'){ temp += string(amount, i); } else { int len = temp.length(); vector<pair<int, int>> add; for(int j = 0; j <= len; j++){ string curr = temp.substr(0, len-j) + string(n-(len-j), i); amount = query(curr); int pos = len - j; int diff = amount - pos; if(diff > 0){ add.push_back({pos, diff}); initAmount -= diff; if(initAmount <= 0) break; } } int k = 0; for(auto &j : add){ temp.insert(j.first + k, string(j.second, i)); k+=j.second; // cout << "{" << j.first << " " << j.second << "}" << endl; } // cout << "| " << temp << " |" << endl; } } return temp; }
#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...