[BOJ 9428] Effective Infection Time
View as PDFYou are estimating the threat level of quarantined zones that have been abandoned to the infection. One of the key variables in determining a zone's threat level is the EIT (Effective Infection Time). This information is essential for planning strike dates to reclaim quarantined zones. The EIT is calculated according to the following rules:</p>
- The EIT is the result of a function of two dates: The infection date and the strike date.
- All years are in A.Z. (After Zombie).
- Every month counts for a fraction of an EIT after its last day has passed. This means the month of the strike date does not count for EIT.
- The first calendar year of the infection is calculated as 1/2 EIT.
- If the end of the year is not reached, each month only counts for a fraction of the 1/2 EIT. If a zone was infected in January of the first year, then the 1/2 EIT is spread across 12 months ((1/2)/12 = ~ 0.0417 EIT per month). If a zone was infected in March of the first year, then the 1/2 EIT is spread across 10 months ((1/2)/10 = 0.0500 EIT per month).
- If the end of the year is reached, the year counts as a full 1/2 EIT, regardless of the infection month. In other words, a zone infected in February of 15 A.Z. counts as only 1/2 (one-half) EIT after December 15 A.Z. A zone infected in December of the same year will also count as 1/2 EIT.
- All following years are calculated as 1 EIT. Each calendar month, beginning with January, counts for 1/12 EIT (~ 0.0833 EIT).
- Every zone infected on the same month will have the same EIT for any given strike date. Therefore only the month and year are given. </ul>
- The first line contains the infection date. The second contains the strike date.
- The first integer of a date represents the month, M (1 <= M <= 12), and the second integer represents the year, Y (0000 <= Y <= 0030). The year will always have 4 digits.
- The strike date will never precede the infection date.
The number and order of months in a calendar year remains the same as the modern Gregorian calendar.
입력 형식
The first line will be an integer N, where 1 <= N <= 50 giving the number of zones. For each zone, a pair of lines of will be provided:</p>
Output the EIT for each zone on its own line. The EIT must be rounded to the fourth digit after the decimal point. The ones-digit must always be printed even if it is a zero.
예제 입력
2
2 0009
11 0012
3 0010
10 0010
예제 출력
3.3333
0.3500
Comments