B. 学姐去学车
时间限制 1000 ms
内存限制 65536 KB
题目描写叙述
趁着放假,学姐去学车好带学弟去兜风。可是学车真的非常辛苦,每天五点半就要起床赶班车,可是学姐的教练更辛苦,他们要同样的时间到并且日日如此。于是温和的学姐关切的问了他们的歇息情况。教练告诉她,他们两个人倒班教学姐。每一个教练每上n天班就会放一天假,假设一个教练放假,就由还有一个教练来代课,一直代课到自己放假再换人。 如今学姐想知道,每一天是哪个教练给她上课。
输入格式
输入開始为数据组数T(T≤10),接下来T组输入,第一行为n,m。我们如果第一天教学姐的是教练1。并且他教学姐的前一天刚刚放完假。教练2则会在学姐上课的第m天放假。1≤m≤n 以保证每天都有教练教学姐。
接下一行为q(q≤103)。即询问次数,接着q行,每行ti表示学姐想问哪天的教练是谁。由于教练们很很厉害,并且学姐不知道自己究竟会花多久学完车,你的程序要处理的n,m,ti上限为109。
输出格式
对于每一个询问ti,输出一行,1或2代表当天的教练。
输入例子
1
5 3
3
6
9
13
输出例子
2
1
2
非常easy的找规律题目,仅仅须要自己在纸上画画值班表就大体能找到周期。只是第一个周期是特例。和之后的不一样。
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n,m;
scanf("%d%d",&n,&m);
int c;
scanf("%d",&c);
for(int i=0;i<c;i++)
{
int q;
scanf("%d",&q);
int temp=q%(2*(n+1));
if(temp==0)
printf("2\n");
else if(temp<m+n+1&&temp>=n+1)
printf("2\n");
else if(temp<m&&q>(2*(n+1)))
printf("2\n");
else
printf("1\n");
}
}
return 0;
}