不明白50次询问为啥会TLE啊?
#include <bits/stdc++.h>
using namespace std;
inline long long read()
{
long long x = 0;
int f = 1;
char ch = getchar();
while (ch < '0' || ch > '9')
{
if (ch == '-')
f = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9')
{
x = (x << 1) + (x << 3) + (ch ^ 48);
ch = getchar();
}
return x * f;
}
void write(const long long &x)
{
if (!x)
{
putchar('0');
return;
}
char f[100];
long long tmp = x;
if (tmp < 0)
{
tmp = -tmp;
putchar('-');
}
long long s = 0;
while (tmp > 0)
{
f[s++] = tmp % 10 + '0';
tmp /= 10;
}
while (s > 0)
{
putchar(f[--s]);
}
}
long long QUEST_PRESENT_NUM;
long long LEFT_BORDER;
long long RIGHT_BORDER = 1E9 + 100;
long long NOW_MID;
int main()
{
while (1)
{
NOW_MID = (LEFT_BORDER + RIGHT_BORDER) >> 1ll;
write(NOW_MID);
putchar('\n');
fflush(stdout);
QUEST_PRESENT_NUM = read();
if (QUEST_PRESENT_NUM == 0)
{
return 0;
}
else if (QUEST_PRESENT_NUM == -1)
{
LEFT_BORDER = NOW_MID;
}
else if (QUEST_PRESENT_NUM == 1)
{
RIGHT_BORDER = NOW_MID;
}
else
{
printf("进不去!怎么想我都进不去嘛!");
}
}
return 0;
} //LikiBlaze Code