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...