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. java 编码分析

    三.源码分析:    更改字符串编码的步骤为:    1.调用String的getByte方法对字符串进行解码,得到字符串的字节数组(字节数组不携带任何有关编码格式的信息,只有字符才有编码格式)    ...

  2. PHP文件操作函数

    1 获得文件名: basename(); 给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名.如果文件名是以 suffix 结束的,那这一部分也会被去掉. eg: 复制代码 代码如下: ...

  3. CSU 1328 近似回文词【最长回文字符串(三种方法)】

    输入一行文本,输出最长近似回文词连续子串.所谓近似回文词是指满足以下条件的字符串: 1. S以字母开头,字母结尾 2. a(S)和b(S)最多有2k个位置不同,其中a(S)是S删除所有非字母字符并且把 ...

  4. Spfa+DP【p2149】[SDOI2009]Elaxia的路线

    Description 最近,Elaxia和w**的关系特别好,他们很想整天在一起,但是大学的学习太紧张了,他们 必须合理地安排两个人在一起的时间. Elaxia和w**每天都要奔波于宿舍和实验室之间 ...

  5. HDU1754I Hate It(线段树)

    I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  6. Linux命令之vim(二)

    这一章主要介绍vim编辑器的内部使用方法和注意事项 vim编辑器有四种工作模式:正常模式.插入模式.命令模式.可视模式.简单的判断方法就是看底部,什么都没有就是正常模式,光标在编辑器最底下时则是命令模 ...

  7. HTTP隧道工具HTTPTunnel

    HTTP隧道工具HTTPTunnel   在很多服务器上,防火墙会限制主机的出站流量,只允许80之类的端口.如果要使用其他端口,只能通过HTTP隧道方式实现.Kali Linux提供一款HTTP隧道工 ...

  8. c++ primer敲代码第二章

    今天越来越发现 学习一门编程语言,没有大量的code实践是不行的.看得快忘得更快.痛下决心,把primer的code习题一一实现. 习题2.11 底数和指数,求结果 #include <iost ...

  9. [CTSC2017]游戏(Bayes定理,线段树)

    传送门:http://uoj.ac/problem/299 题目良心给了Bayes定理,但对于我这种数学渣来说并没有什么用. 先大概讲下相关数学内容: 1.定义:$P(X)$ 表示事件$X$发生的概率 ...

  10. [BZOJ 2964] Boss单挑战

    Link:https://www.lydsy.com/JudgeOnline/problem.php?id=2964 Algorithm: 一道很新颖的背包问题 此题每个状态要维护的量巨多,而转移方式 ...