You 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:

• 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.

The number and order of months in a calendar year remains the same as the modern

Gregorian calendar.

Input

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:

• 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.

Output

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.

Sample Input

2

2 0009

11 0012

3 0010

10 0010

Sample Output

3.3333

0.3500

水题一个。题意真心难懂,读了不下1个小时。

题意:考虑第一年,若第一年过完了按0.5算。没过完就按0.5/x*y算,随后的每年的每月按1.0/12算。

计算出有多少月就能够了。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<limits.h>
typedef long long LL;
using namespace std;
double m1,y1;
double m2,y2;
int main()
{
int t;
cin>>t;
while(t--)
{
double ans;
cin>>m1>>y1>>m2>>y2;
if(y1==y2)
ans=0.5/(12-m1+1)*(m2-m1);
else
ans=(y2-y1-1)+1.0/12*(m2-1)+0.5;
printf("%.4lf\n",ans);
}
return 0;
}

UVA 6475 Effective Infection Time的更多相关文章

  1. Effective前端2:优化html标签

    div { float: left; } .keyboard > div + div { margin-left: 8px; } --> div{display:table-cell;ve ...

  2. Effective java笔记(二),所有对象的通用方法

    Object类的所有非final方法(equals.hashCode.toString.clone.finalize)都要遵守通用约定(general contract),否则其它依赖于这些约定的类( ...

  3. 《Effective java》-----读书笔记

    2015年进步很小,看的书也不是很多,感觉自己都要废了,2016是沉淀的一年,在这一年中要不断学习.看书,努力提升自己!预计在2016年要看12本书,主要涉及java基础.Spring研究.java并 ...

  4. 《Effective Java》学习笔记——积累和激励

    从一个实际案例说起 国庆长假前一个礼拜,老大给我分配了这么一个bug,就是打印出来的报表数量为整数的,有的带小数位,有的不带,毫无规律. 根据短短的两个多月的工作经验以及猜测,最终把范围缩小到以下这段 ...

  5. Effective前端5:减少前端代码耦合

    什么是代码耦合?代码耦合的表现是改了一点毛发而牵动了全身,或者是想要改点东西,需要在一堆代码里面找半天.由于前端需要组织js/css/html,耦合的问题可能会更加明显,下面按照耦合的情况分别说明: ...

  6. Effective前端4:尽可能地使用伪元素

    伪元素是一个好东西,但是很多人都没怎么用,因为他们觉得伪元素太诡异了.其实使用伪元素有很多好处,最大的好处是它可以简化页面的html标签,同时用起来也很方便,善于使用伪元素可以让你的页面更加地简洁优雅 ...

  7. Effective前端3:用CSS画一个三角形

    p { text-indent: 2em } .triangle-container p { text-indent: 0 } img { margin: 15px 0 } 三角形的场景很常见,打开一 ...

  8. Effective前端1:能使用html/css解决的问题就不要使用JS

    div{display:table-cell;vertical-align:middle}#crayon-theme-info .content *{float:left}#crayon-theme- ...

  9. Effective Java笔记一 创建和销毁对象

    Effective Java笔记一 创建和销毁对象 第1条 考虑用静态工厂方法代替构造器 第2条 遇到多个构造器参数时要考虑用构建器 第3条 用私有构造器或者枚举类型强化Singleton属性 第4条 ...

随机推荐

  1. Go简单的Goroutine示例

    最简单的,接下来,会是竞争,加锁... package main import ( "fmt" "runtime" "sync" ) var ...

  2. MYSQL的内外连接

    1.内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符).包括相等联接和自然联接.     内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 stude ...

  3. Python web 简单服务器的搭建与运行

    搭建python的CGI环境: 假设在/var/www/cgi-bin下建立一个hello.py的文件 在ubuntu下打开终端 然后用命令 cd /var/www/ 进入后执行命令 : python ...

  4. Codeforces 914 C Travelling Salesman and Special Numbers

    Discription The Travelling Salesman spends a lot of time travelling so he tends to get bored. To pas ...

  5. [CodeChef-LVGFT]Lovers Gift

    题目大意: 给定一个$n(n\le10^5)$个结点的树,初始全为白点.$m(m\le10^5)$次操作,每次将点$x$染成黑色或询问从$x$出发至少经过一个黑点能到达的点中,编号次大的点. 思路: ...

  6. 5.4 集合的排序(Java学习笔记)(Collections.sort(),及Arrays.sort()底层分析)

    1.Comparable接口 这个接口顾名思义就是用于排序的,如果要对某些对象进行排序,那么该对象所在的类必须实现 Comparabld接口.Comparable接口只有一个方法CompareTo() ...

  7. 工作流Activiti新手入门学习路线整理

    写在前面: 最近项目中使用到了工作流,虽然此部分不是自己需要完成的,但是也涉及到了要调用写的接口.正好有时间,就了解下,以便之后能在其他项目中用到时,不至于什么都不知道什么都不了解. 这里就主要整理下 ...

  8. CHBTC

    蛙人高频交易拆单策略-带手续费拆单策略及原理说明 - 王宇 warensoft - 博客园 CHBTC

  9. Bootstrap响应式折叠导航

    浏览器宽度缩小到一定值时,导航显示为 <nav class="navbar navbar-inverse navbar-fixed-top" role="navig ...

  10. SQL CTE 递归分割以逗号分隔的字符串

    )) INSERT INTO @t SELECT 'AAA,BBB,CCC' SELECT * FROM @t ;WITH mycte AS ( ,mend,num FROM @t UNION ALL ...