codeforce843B Interactive LowerBound(随机算法+交互题)

来源:互联网 发布:sql注入绕过单引号 编辑:程序博客网 时间:2024/05/02 00:02
#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <string>#include <cmath>#include <algorithm>#include <vector>#include <set>#include <map>#include <time.h>using namespace std;int num[50015];int main(){    int n, st, x;    scanf("%d%d%d", &n, &st, &x);    //第一种产生随机数的方法:    //for(int i = 0; i < n; ++i) num[i] = i + 1;    //random_shuffle(num, num + n);    srand((unsigned)time(0));    int cnt = min(999, n);    int v = -1, t = 0, ne = 0;    for(int i = 0; i < cnt; ++i)    {        //第二种产生随机数的方法:        printf("? %d\n", abs((rand()<<15)+rand()) % n + 1);        fflush(stdout);        scanf("%d%d", &t, &ne);        if(t <= x && t >= v) v = t, st = ne;    }    while(st != -1 && v < x)    {        printf("? %d\n", st);        fflush(stdout);        scanf("%d%d", &v, &st);    }    if(v < x) printf("! -1\n");    else printf("! %d\n", v);    fflush(stdout);    return 0;}

阅读全文
0 0