luogu#P6612. [POI2012] LIC-Bidding

[POI2012] LIC-Bidding

题目背景

本题为交互题

本题 checker 中含有正解, 故不下发

题目描述

A 和 B 两个人在玩一个游戏,这个游戏是他们轮流操作一对整数 (x,y)(x,y)

初始时 (x,y)=(1,0)(x,y)=(1,0),可以进行三种操作:

  1. (x,y)(x,y) 变成 (1,x+y)(1,x+y)
  2. (x,y)(x,y) 变成 (2x,y)(2x,y)
  3. (x,y)(x,y) 变成 (3x,y)(3x,y)

给定正整数 nn。在 x+ynx+y\ge n 时就不能进行后两种操作。如果某个人操作后 yny\ge n,他就输掉了。

保证给出的 nn 为先手必胜的,你需要提供一种先手必胜的方案。例如 n=3n = 3 时,先手选择操作 3,后手只能选择操作 1 然后输,所以 n=3n = 3 时先手必胜。

交互题,你需要实现一个函数 extern "C" int _opt(int n, int x, int y),该函数的返回值是一个值为 112233 的整数,表示现在数对是 (x,y)(x, y),参数是 nn 且轮到你操作时,你会选择的操作。

提示

数据规模与约定

对于全部的测试点,保证 1n300001 \leq n\leq 30000

说明

样例交互库见附件。与选手程序在本地一起编译后可以通过标准输入来模拟 spj 与选手程序进行交互。
当交互库输出 -2 -2 并退出时,说明选手程序正确。