思路:可以发现这是一个有周期性的事件。
手算求出:1-n天,为1号教练。
n+1 - n+m天,为2号教练。
n+m+1 - 2n+1天,为1号教练。
2n+2 - 2n+m +1天,为2号教练
2n+m+2 - 3n+2天,为1号教练。
可以看出,周期为n+1,起始从2号教练开始。1-n天要先特判。之后的天数对n+1取模,小于m为2号教练,大于等于m小于n为1号教练
代码如下:
using namespace std;
int n,m;
int judge(int t)
{
if(t <= n)
return 1;
else if(t % (n + 1) < m)
return 2;
else
return 1;
}
int main(void)
{
int T;
scanf("%d", &T);
while(T--){
scanf("%d%d",&n,&m);
int q;
scanf("%d", &q);
for(int i = 0 ; i < q; ++i){
int tmp;
scanf("%d",&tmp);
printf("%d\n",judge(tmp));
}
}
return 0;
}