제출 #201149

#제출 시각아이디문제언어결과실행 시간메모리
201149Atill83Password (RMI18_password)C++14
100 / 100
299 ms688 KiB
#include <bits/stdc++.h> #define ff first #define ss second using namespace std; int query(string str); pair<int, char> freq[30]; string solve(int l, int r){ if(l == r){ string a; for(int i = 0; i < freq[l].ff; i++) a += freq[l].ss; return a; } int m = (l + r) / 2; string a = solve(l, m), b = solve(m + 1, r); string ans; int l1 = 0, l2 = 0; while(l1 != a.length() && l2 != b.length()){ int len = ans.length() + b.length() - l2 + 1; if(query(ans + a[l1] + b.substr(l2)) == len){ ans += a[l1++]; }else{ ans += b[l2++]; } } if(l1 < a.length()){ for(int i = l1; i < a.length(); i++) ans +=a[i]; }else{ for(int i = l2; i < b.length(); i++) ans += b[i]; } return ans; } string guess(int n, int s){ int sum = 0; for(int i = 0; i < s - 1; i ++){ string que; for(int j = 0; j < n; j++) que += (char)('a' + i); freq[i].ff = query(que); sum += freq[i].ff; freq[i].ss = (char)('a' + i); } freq[s - 1].ff = n - sum; freq[s - 1].ss = (char)('a' + s - 1); sort(freq, freq + s); return solve(0, s - 1); }

컴파일 시 표준 에러 (stderr) 메시지

password.cpp: In function 'std::__cxx11::string solve(int, int)':
password.cpp:20:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while(l1 != a.length() && l2 != b.length()){
           ~~~^~~~~~~~~~~~~
password.cpp:20:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while(l1 != a.length() && l2 != b.length()){
                               ~~~^~~~~~~~~~~~~
password.cpp:28:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if(l1 < a.length()){
        ~~~^~~~~~~~~~~~
password.cpp:29:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int i = l1; i < a.length(); i++)
                         ~~^~~~~~~~~~~~
password.cpp:32:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int i = l2; i < b.length(); i++)
                         ~~^~~~~~~~~~~~
#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...