Submission #496357

#TimeUsernameProblemLanguageResultExecution timeMemory
496357triplem5dsPassword (RMI18_password)C++14
100 / 100
294 ms516 KiB
/// Zengy MANGA #pragma GCC optimize("O3") #pragma GCC optimize ("unroll-loops") #pragma GCC target("avx,avx2,fma") #include "bits/stdc++.h" using namespace std; #define pb push_back #define F first #define S second #define f(i, a, b) for(int i = a; i < b; i++) #define all(a) a.begin(),a.end() #define rall(a) a.rbegin(),a.rend() #define sz(x) (int)(x).size() #define mp(x,y) make_pair(x,y) #define popCnt(x) (__builtin_popcountll(x)) using ll = long long; using ii = pair<int,int>; using ull = unsigned long long; using db = long double; const int N = 2e5+5, LG = 18, MOD = 998244353; const long double PI = acos(-1); int query(string s); using is = pair<int, string>; priority_queue<is, vector<is>, greater<is>> pq; string mrg(string s1, string s2) { for(int i = s1.size(); i > 0 && s2.size(); --i) { for(int j = 1; j <= s2.size() + 1; j++) { if(j > s2.size() || query(s1.substr(0,i) + s2.substr(s2.size()-j) + s1.substr(i)) != s1.size() + j) { s1 = s1.substr(0,i) + s2.substr(s2.size()-(j-1)) + s1.substr(i); f(k,0,j-1)s2.pop_back(); break; } } } return s2+s1; } string guess(int n, int s) { f(i,0,s) { string str = string(query(string(n, 'a' + i)), 'a' + i); if(str.size()) pq.push(make_pair(str.size(), str)); } while(sz(pq) > 1) { auto cur2 = pq.top().second; pq.pop(); auto cur1 = pq.top().second; pq.pop(); string ans = mrg(cur1, cur2); pq.push(mp(sz(ans), ans)); } return pq.top().second; }

Compilation message (stderr)

password.cpp: In function 'std::string mrg(std::string, std::string)':
password.cpp:36:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   36 |         for(int j = 1; j <= s2.size() + 1; j++) {
      |                        ~~^~~~~~~~~~~~~~~~
password.cpp:37:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |             if(j > s2.size() || query(s1.substr(0,i) + s2.substr(s2.size()-j) + s1.substr(i)) != s1.size() + j) {
      |                ~~^~~~~~~~~~~
password.cpp:37:95: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |             if(j > s2.size() || query(s1.substr(0,i) + s2.substr(s2.size()-j) + s1.substr(i)) != s1.size() + j) {
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
#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...