Submission #2119305


Source Code Expand

#include <stdio.h>
#include <algorithm>
#include <assert.h>
#include <bitset>
#include <cmath>
#include <complex>
#include <deque>
#include <functional>
#include <iostream>
#include <limits.h>
#include <map>
#include <math.h>
#include <queue>
#include <set>
#include <stdlib.h>
#include <string.h>
#include <string>
#include <time.h>
#include <unordered_map>
#include <unordered_set>
#include <vector>

#pragma warning(disable:4996)
#pragma comment(linker, "/STACK:336777216")
using namespace std;

#define mp make_pair
#define all(x) (x).begin(), (x).end()
#define ldb ldouble

typedef tuple<int, int, int> t3;
typedef long long ll;
typedef unsigned long long ull;
typedef double db;
typedef long double ldb;
typedef pair <int, int> pii;
typedef pair <ll, ll> pll;
typedef pair <ll, int> pli;
typedef pair <db, db> pdd;

int IT_MAX = 1 << 19;
int MOD = 1000000007;
const int INF = 0x3f3f3f3f;
const ll LL_INF = 0x3f3f3f3f3f3f3f3f;
const db PI = acos(-1);
const db ERR = 1e-10;
#define szz(x) (int)(x).size()
#define rep(i, n) for(int i=0;i<n;i++)
#define Se second
#define Fi first

const int MX = 15;
const int MM = 1000000007;

const int DEBUG = 0;

ll N;

bool check(ll x){
	printf("? %lld\n", x);
	fflush(stdout);
	char buf[10];
	if(DEBUG){
		char P[20], Q[20];
		sprintf(P, "%lld", x);
		sprintf(Q, "%lld", N);
		if( ((string)P <= (string)Q) ^ (x <= N)) return false;
		return true;
	}
	scanf("%s", buf); return buf[0] == 'Y';
}

int main()
{
	if(DEBUG) scanf("%lld", &N);
	ll s = 1e10, e = 1e11, m;
	while(s <= e){
		m = (s+e) / 2;
		if( check(m) ) e = m-1;
		else s = m+1;
	}swap(s, e);
	while(e%10 == 0){
		e /= 10;
		if( !check(e+1) ){
			printf("! %lld\n", e*10);
			fflush(stdout);
			return 0;
		}
	}
	if(!check(e+1))printf("! %lld\n", e*10);
	else printf("! %lld\n", e);
	fflush(stdout);
}

Submission Info

Submission Time
Task E - Awkward Response
User zigui
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1897 Byte
Status WA
Exec Time 5 ms
Memory 720 KB

Compile Error

./Main.cpp: In function ‘bool check(ll)’:
./Main.cpp:70:18: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%s", buf); return buf[0] == 'Y';
                  ^
./Main.cpp: In function ‘int main()’:
./Main.cpp:75:29: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  if(DEBUG) scanf("%lld", &N);
                             ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 800
Status
AC × 1
AC × 31
WA × 9
Set Name Test Cases
Sample 00_example_01.txt
All 00_example_01.txt, 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt
Case Name Status Exec Time Memory
00_example_01.txt AC 5 ms 720 KB
01.txt AC 5 ms 588 KB
02.txt AC 5 ms 596 KB
03.txt AC 4 ms 588 KB
04.txt AC 5 ms 592 KB
05.txt AC 4 ms 592 KB
06.txt AC 4 ms 592 KB
07.txt AC 4 ms 588 KB
08.txt AC 4 ms 588 KB
09.txt AC 5 ms 592 KB
10.txt AC 5 ms 592 KB
11.txt AC 5 ms 592 KB
12.txt AC 5 ms 592 KB
13.txt AC 5 ms 592 KB
14.txt AC 4 ms 596 KB
15.txt AC 4 ms 592 KB
16.txt AC 4 ms 592 KB
17.txt AC 4 ms 596 KB
18.txt AC 5 ms 592 KB
19.txt AC 5 ms 592 KB
20.txt AC 5 ms 588 KB
21.txt AC 5 ms 592 KB
22.txt AC 5 ms 596 KB
23.txt AC 5 ms 592 KB
24.txt AC 5 ms 592 KB
25.txt AC 4 ms 588 KB
26.txt AC 4 ms 592 KB
27.txt AC 4 ms 596 KB
28.txt AC 4 ms 592 KB
29.txt AC 4 ms 592 KB
30.txt AC 4 ms 592 KB
31.txt WA 5 ms 588 KB
32.txt WA 5 ms 592 KB
33.txt WA 5 ms 596 KB
34.txt WA 5 ms 592 KB
35.txt WA 4 ms 592 KB
36.txt WA 4 ms 592 KB
37.txt WA 4 ms 588 KB
38.txt WA 4 ms 592 KB
39.txt WA 4 ms 592 KB