Submission #2120435


Source Code Expand

#include <stdio.h>
#pragma warning(disable:4996)
//FILE *in = fopen("input.txt", "r"), *out = fopen("output.txt", "w");
FILE *in = stdin, *out = stdout;
#include <vector>
#include <algorithm>
#include <math.h>
using namespace std;
#define INF 0x7fffffff
#define NM 100005
#define MOD 1000000007
#define FOR(i,n,m) for (int i=(n);i<=(m);i++)
#define si(n) fscanf(in,"%d",&n)
#define sd(n) fscanf(in,"%lf",&n)
typedef long long int ll;

int ans=123;
char test(ll X) {
	//*
	fprintf(out, "? %lld\n", X);
	char ch[5]; fscanf(in, "%s", ch);
	fflush(stdout);//*/
	return ch[0];
}
void Find(int X) {
	fprintf(out, "! %d\n", X);
}

int getLen() {
	int L = 0, R = 8, len = 9;
	while (L <= R) {
		int m = (L + R) >> 1;
		int X = 1;
		FOR(i, 1, m) X *= 10;
		if (test(X) == 'N') {
			len = min(len, m);
			R = m - 1;
		}
		else {
			L = m + 1;
		}
	}
	/*for (ll X = 1; len < 9; len++, X *= 10) {
		if (test(X) == 'N') {
			return len;
		}
	}*/
	return len;
}
void temp() {
	int a[10005];
	FOR(i, 1, 10000) a[i] = i;
	sort(a + 1, a + 1 + 10000, [](const int& lhs, const int& rhs) {
		char t1[20], t2[20];
		itoa(lhs, t1, 10); itoa(rhs, t2, 10);
		return strcmp(t1, t2)<=0;
	});
	FOR(i, 1, 10000) fprintf(out, "%d\n", a[i]);
}
int main() {
	int len = getLen();
	if (len == 9 && test(1000000000) == 'Y') { // 10^k 꼴 or 9자리
		len = 0;
		for (ll X = 2; len <= 9; len++, X *= 10) {
			char ch = test(X);
			if (ch == 'Y') {
				Find(X / 2);
				return 0;
			}
		}
	}
	int ans = 0;
	FOR(k, 1, len - 1) {
		int L = 0, R = 9, v = 9;
		if (k == 1) L = 1;
		while(L<=R){
			int m = (L + R) >> 1;
			int X = ans * 10 + m;
			if (test(X) == 'N') {
				v = min(v, m - 1);
				R = m - 1;
			}
			else {
				L = m + 1;
			}
		}
		ans = ans * 10 + v;
	}
	{ // last digit
		int L = 0, R = 9, v = -1;
		if (len == 1) L = 1;
		FOR(i, L, R) {
			ll X = ((ll)ans * 10 + i) * 10;
			if (test(X) == 'Y') {
				Find(ans * 10 + i);
				return 0;
			}
		}
	}
	return 0;
}

Submission Info

Submission Time
Task E - Awkward Response
User rhs0266
Language C++14 (GCC 5.4.1)
Score 0
Code Size 2039 Byte
Status CE

Compile Error

./Main.cpp: In lambda function:
./Main.cpp:55:19: error: ‘itoa’ was not declared in this scope
   itoa(lhs, t1, 10); itoa(rhs, t2, 10);
                   ^
./Main.cpp:56:23: error: ‘strcmp’ was not declared in this scope
   return strcmp(t1, t2)<=0;
                       ^
In file included from /usr/include/c++/5/bits/stl_algobase.h:71:0,
                 from /usr/include/c++/5/vector:60,
                 from ./Main.cpp:5:
/usr/include/c++/5/bits/predefined_ops.h: In instantiation of ‘constexpr bool __gnu_cxx::__ops::_Iter_comp_iter<_Compare>::operator()(_Iterator1, _Iterator2) [with _Iterator1 = int*; _Iterator2 = int*; _Compare = temp()::<lambda(const int&, const int&)>]’:
/usr/include/c++/5/bits/stl_algo.h:1842:14:   required from ‘void std::__insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = int*; _Compare = __gnu_cxx::__ops::_Iter_comp_iter<temp()::<lambda(const int&, const int&)> >]’
/usr/include/c++/5/bits/stl_algo.h:1880:25:   required from ‘voi...