414. 学姐去学车
时间限制 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
分析:要理解题意,两个教练都是每上n天班,休息一天。但教练1从第一天开始工作,教练2从第m+1天开始工作。如果一个教练放假,就由另一个教练来代课,一直代课到自己放假再换人。
代码:#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> using namespace std; int main() { int t,n,q,a,m; scanf("%d",&t); while(t--) { scanf("%d %d",&n,&m); scanf("%d",&q); while(q--) { scanf("%d",&a); if(a<=n||a%(n+1)>=m&&a%(n+1)<=n) //通过画图,发现教练1工作的时间是有规律的 printf("1\n"); else printf("2\n"); } } return 0; }