提出 #13544730
ソースコード 拡げる
#include<bits/stdc++.h>
using namespace std;
int len;
string s[62];
int step;
int ask(string s){
assert(++step<=850);
cout<<"? "<<s<<endl;
int x;cin>>x;return x;
}
string solve(int l,int r){
if(l==r)return s[l];
int m=l+r>>1;
string L=solve(l,m),R=solve(m+1,r);
if(L.empty())return R;
if(R.empty())return L;
string ret;int i=0,j=0;
for(;i<L.size() || j<R.size();)
if(i<L.size() && (j==R.size() || ask(ret+L[i]+string(R.begin()+j,R.end()))
==len-ret.size()-1-(R.size()-j)))ret=ret+L[i++];
else ret=ret+R[j++];
return ret;
}
int main(){
ios::sync_with_stdio(0);cin.tie(0);
int p=0;char c;
for(c='a';c<='z';++c)s[p++]=string(128-ask(string(128,c)),c);
for(c='A';c<='Z';++c)s[p++]=string(128-ask(string(128,c)),c);
for(c='0';c<='9';++c)s[p++]=string(128-ask(string(128,c)),c);
for(auto u:s)len+=u.size();
auto zz=solve(0,61);
assert(zz.size()<=128 && zz.size()==len);
cout<<"! "<<zz<<endl;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | D - Guess the Password |
| ユーザ | zxn |
| 言語 | C++ (GCC 9.2.1) |
| 得点 | 1100 |
| コード長 | 946 Byte |
| 結果 | AC |
| 実行時間 | 31 ms |
| メモリ | 3800 KiB |
コンパイルエラー
./Main.cpp: In function ‘std::string solve(int, int)’:
./Main.cpp:13:9: warning: suggest parentheses around ‘+’ inside ‘>>’ [-Wparentheses]
13 | int m=l+r>>1;
| ~^~
./Main.cpp:18:8: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
18 | for(;i<L.size() || j<R.size();)
| ~^~~~~~~~~
./Main.cpp:18:22: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
18 | for(;i<L.size() || j<R.size();)
| ~^~~~~~~~~
./Main.cpp:19:7: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
19 | if(i<L.size() && (j==R.size() || ask(ret+L[i]+string(R.begin()+j,R.end()))
| ~^~~~~~~~~
./Main.cpp:19:22: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
19 | if(i<L.size() && (j==R.size() || ask(ret+L[i]+string(R.begin()+j,R.end()))
| ~^~~~~~~~~~
./Main.cpp:20:5: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
19 | if(i<L.size() && (j==R.size() || ask(ret+L[i]+string(R.begin()+j,R.end()))
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
20 | ==len-ret.size()-1-(R.size()-j)))ret=ret+L[i++];
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/9/cassert:44,
from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:33,
from ./Main.cpp:1:
./Main.cpp: In function ‘int main()’:
./Main.cpp...
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 1100 / 1100 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | example0.txt |
| All | 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt, 028.txt, 029.txt, 030.txt, 031.txt, 032.txt, 033.txt, 034.txt, 035.txt, 036.txt, 037.txt, 038.txt, 039.txt, 040.txt, 041.txt, 042.txt, 043.txt, 044.txt, 045.txt, example0.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 000.txt | AC | 8 ms | 3648 KiB |
| 001.txt | AC | 7 ms | 3628 KiB |
| 002.txt | AC | 7 ms | 3700 KiB |
| 003.txt | AC | 8 ms | 3720 KiB |
| 004.txt | AC | 8 ms | 3672 KiB |
| 005.txt | AC | 8 ms | 3708 KiB |
| 006.txt | AC | 12 ms | 3736 KiB |
| 007.txt | AC | 14 ms | 3660 KiB |
| 008.txt | AC | 6 ms | 3740 KiB |
| 009.txt | AC | 7 ms | 3712 KiB |
| 010.txt | AC | 8 ms | 3704 KiB |
| 011.txt | AC | 7 ms | 3708 KiB |
| 012.txt | AC | 14 ms | 3792 KiB |
| 013.txt | AC | 14 ms | 3736 KiB |
| 014.txt | AC | 14 ms | 3772 KiB |
| 015.txt | AC | 17 ms | 3736 KiB |
| 016.txt | AC | 19 ms | 3764 KiB |
| 017.txt | AC | 20 ms | 3732 KiB |
| 018.txt | AC | 16 ms | 3724 KiB |
| 019.txt | AC | 20 ms | 3624 KiB |
| 020.txt | AC | 21 ms | 3772 KiB |
| 021.txt | AC | 18 ms | 3800 KiB |
| 022.txt | AC | 17 ms | 3680 KiB |
| 023.txt | AC | 23 ms | 3680 KiB |
| 024.txt | AC | 28 ms | 3732 KiB |
| 025.txt | AC | 13 ms | 3624 KiB |
| 026.txt | AC | 22 ms | 3796 KiB |
| 027.txt | AC | 18 ms | 3732 KiB |
| 028.txt | AC | 21 ms | 3800 KiB |
| 029.txt | AC | 22 ms | 3688 KiB |
| 030.txt | AC | 22 ms | 3624 KiB |
| 031.txt | AC | 21 ms | 3792 KiB |
| 032.txt | AC | 25 ms | 3632 KiB |
| 033.txt | AC | 22 ms | 3724 KiB |
| 034.txt | AC | 29 ms | 3760 KiB |
| 035.txt | AC | 25 ms | 3736 KiB |
| 036.txt | AC | 30 ms | 3688 KiB |
| 037.txt | AC | 24 ms | 3732 KiB |
| 038.txt | AC | 25 ms | 3800 KiB |
| 039.txt | AC | 23 ms | 3632 KiB |
| 040.txt | AC | 23 ms | 3684 KiB |
| 041.txt | AC | 26 ms | 3796 KiB |
| 042.txt | AC | 31 ms | 3720 KiB |
| 043.txt | AC | 27 ms | 3796 KiB |
| 044.txt | AC | 24 ms | 3680 KiB |
| 045.txt | AC | 25 ms | 3768 KiB |
| example0.txt | AC | 6 ms | 3680 KiB |