CF117A Elevator 题解
题意
有一个直上直下的电梯,每一个人想要从
思路
这个电梯是直上直下的,每一次都必须从
特别的,在时间
设这栋楼有
令
针对于 x < y 的情况:
一共需要用
- 当
z \mod m > n \times 2 - x - 1 时,加上m 。 - 当
z \mod m \le n \times 2 - x - 1 时,不做处理。
针对于 x > y 的情况:
一共需要用
- 当
z \mod m \ge x 时,加上m 。 - 当
z \mod m < x 时,不做处理。
针对于 x = y 的情况:
所用时间即为
#include<bits/stdc++.h>
using namespace std;
int T,n,x,y,z;
int main(){
scanf("%d%d",&T,&n);int m=n*2-2;
while (T--){
scanf("%d%d%d",&x,&y,&z);
if (x>y) printf("%d\n",z/m*m+n*2-y-1+((z%m>n*2-x-1)?m:0));
else if (x<y) printf("%d\n",z/m*m+y-1+((z%m>=x)?m:0));
else printf("%d\n",z);
}
return 0;
}