Submission #1118513

#TimeUsernameProblemLanguageResultExecution timeMemory
1118513somefolkPassword (RMI18_password)C++17
0 / 100
5 ms692 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> #include <cassert> 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){ bool pass = false; string sol = ""; 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(!pass){ sol += string(amount, i); pass = true; } else { int len = sol.length(); vector<pair<int, int>> add; for(int j = 0; j <= len; j++){ string curr = sol.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}); if(amount - diff <= 0) break; } } int k = 0; for(auto &j : add){ sol.insert(j.first + k, string(j.second, i)); k+=j.second; // cout << "{" << j.first << " " << j.second << "}" << endl; } // cout << "| " << temp << " |" << endl; } } return sol; }

Compilation message (stderr)

password.cpp: In function 'std::string guess(int, int)':
password.cpp:42:13: warning: unused variable 'initAmount' [-Wunused-variable]
   42 |         int initAmount = amount;
      |             ^~~~~~~~~~
#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...