2014
02-24

# Combination Lock

The combination lock of this problem, as shown in the figure, consists of a circular dial, which can be turned (clockwise or counterclockwise) and is embedded into the "fixed" part of the lock. The dial has N evenly spaced "ticks". The ticks are numbered from 0 to N-1, increasing in the clockwise direction. The fixed part of the lock has a "mark" which always "points to" a particular tick on the dial. Of course, the mark points to different ticks as the dial is turned. (In the figure, N = 40 and the mark points to tick 14.)

The lock comes with three code numbers T1,T2, T3. These are non-negative integers and each of them is less than N. No two of the three are the same.

The lock is opened in three stages of operations:

1. If the mark initially points to tick T1, turn the dial exactly two full revolutions clockwise and stop. Otherwise, turn the dial clockwise exactly two full revolutions, and continue to turn it clockwise until the mark points to tick T1.
2. Turn the dial one full revolution counterclockwise and continue to turn it counterclockwise until the mark points to tick T2.
3. Turn the dial clockwise until the mark points to tick T3. The lock should now open.

Given the numbers N, T1, T2, T3, the goal of this problem is to find the average number of ticks the dial must be turned in order to open the lock. For any particular N, T1, T2, T3 and a particular initial configuration of the lock, the number of ticks turned is defined to be the sum of the ticks turned in the three stages outlined above.

The input file consists of a number of test cases, one test case per line. Each line of the input file contains four integers: N, T1, T2, T3, in this order, separated by blank spaces. The integer N is a multiple of 5, 25 <= N <= 100. The numbers T1, T2 and T3 satisfy the constraints stated under the description above. The input will be terminated by a line containing only four zeroes, separated by blank spaces.

The input file consists of a number of test cases, one test case per line. Each line of the input file contains four integers: N, T1, T2, T3, in this order, separated by blank spaces. The integer N is a multiple of 5, 25 <= N <= 100. The numbers T1, T2 and T3 satisfy the constraints stated under the description above. The input will be terminated by a line containing only four zeroes, separated by blank spaces.

80 20 40 50
80 10 79 12
0 0 0 0

369.500
415.500

#include <stdio.h>
int main()
{
int i, a, b, c, d;
while (scanf("%d %d %d %d",&i,&a,&b,&c)!=EOF)
{
if (i+a+b+c==0)
break;

d = 720+360 + (a>i?(40-a)+i:(i-a))*9 + (b<a?(40-a)+b:(b-a))*9 + (c>b?(40-c)+b:(b-c))*9;

printf("%d\n",d);
}
return 0;
}

1. 题本身没错，但是HDOJ放题目的时候，前面有个题目解释了什么是XXX定律。
这里直接放了这个题目，肯定没几个人明白是干啥