程序需在开头引入库:
- C/C++: #include "cliclib.h"
- Pascal: uses pliclib;
库提供以下函数和过程:
- inicjuj:返回 $n$,需在程序开始时调用一次。
- C/C++: int inicjuj();
- Pascal: function inicjuj: longint;
- alojzy:通知库你的程序的动作。参数为整数 $x$,表示动作:$x=1$ 为弃牌,$x=2$ 为翻倍,$x=3$ 为增至三倍。
- C/C++: void alojzy(int x);
- Pascal: procedure alojzy(x: longint);
- bajtazar:返回库的动作,返回整数 $x$,表示动作:$x=1$ 为弃牌,$x=2$ 为翻倍,$x=3$ 为增至三倍。
- C/C++: int bajtazar();
- Pascal: function bajtazar: longint;
调用 inicjuj 后,需交替调用 alojzy 和 bajtazar(按此顺序)。违反通信协议将被判为「Wrong Answer」,该测试数据得 $0$ 分。本任务禁止使用标准输入输出,所有通信仅通过上述函数和过程进行。库将在游戏结束后自动终止程序。
程序将与库一起编译,使用以下命令:
- C: gcc -O2 -static cliclib.c lic.c -lm
- C++: g++ -O2 -static cliclib.c lic.cpp -lm
- Pascal: ppc386 -O2 -Xs -Xt lic.pas