提出 #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
結果
AC × 1
AC × 47
セット名 テストケース
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