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. AC日记——绿豆蛙的归宿 codevs 2488

    绿豆蛙的归宿 思路: topsort+期望dp: 代码: #include <cstdio> #include <cstring> #include <iostream& ...

  2. std::string 字符串大小写转换(转)

    该问题归结为std::transform函数的使用 函数原型 template < class InputIterator, class OutputIterator, class UnaryO ...

  3. SnowNLP:一个处理中文文本的 Python 类库[转]

    SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和Te ...

  4. linux中Firefox浏览器 手动安装 flash

    打开firefox浏览器,当你打开有关音频或者视频的网站时候,会提示你安装 flash,可是,官网提示,需要手动安装. 1.先从提示的官网上下载好文件 “install_flash_player_11 ...

  5. Linq 透明标识符 let

    IEnumerable<Person> list = new List<Person> { , Id = }, , Id = }, , Id = }, , Id = }, , ...

  6. 谜题8:Dos Equis

    这个谜题将测试你对条件操作符的掌握程度,这个操作符有一个更广为人知的名字:问号冒号操作符.下面的程序将会打印出什么呢? public class DosEquis{ public static voi ...

  7. 后门工具dbd

    后门工具dbd   dbd功能类似于Netcat,但提供强大的加密功能,支持AES-CBC-128和HMAC-SHA1加密.该工具可以运行在类Unix和Windows系统中.渗透测试人员首先使用该工具 ...

  8. 【动态规划】bzoj1613 [Usaco2007 Jan]Running贝茜的晨练计划

    #include<cstdio> #include<algorithm> using namespace std; #define N 10001 int n,m,a[N],f ...

  9. 【矩阵哈希】【二分答案】【哈希表】bzoj1567 [JSOI2008]Blue Mary的战役地图

    引用题解:http://hzwer.com/5153.html 当然,二分可以换成哈希表. #include<cstdio> #include<iostream> #inclu ...

  10. [转]从此爱上iOS Autolayout

    原文地址 这篇不是autolayout教程,只是autolayout动员文章和经验之谈,在本文第五节友情链接和推荐中,我将附上足够大家熟练使用autolayout的教程.这篇文章两个月前就想写下来,但 ...