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. centeros7远程访问mysql5.7

    先启动firewall防火墙: service firewalld start 打开3306端口: firewall-cmd --add-port=/tcp --permanent mysql授权ro ...

  2. C#关于log4net(Log For Net)

    1       介绍 log4net(Log For Net)是Apache开源的应用于.Net框架的日志记录工具,详细信息参见Apache网站.它是针对Java的log4j(Log For Java ...

  3. VMware vCenter Server安装与配置

    预先准备好安装包 ESXI6    VMware-VMvisor-Installer-6.0.0.update01-3073146.x86_64.iso VC        VMware-VIMSet ...

  4. JS中对数组的操作方法

    不断加入中.... 一.数组的增删 1.push():从后面追加 pop():从后面删除一个. 二.数组与字符串的转换 split():用分隔符生成数组 join():将数组用分隔符连为字符串. 三. ...

  5. 二维树状数组+差分【p4514】上帝造题的七分钟

    Description "第一分钟,X说,要有矩阵,于是便有了一个里面写满了\(0\)的\(n\times m\)矩阵. 第二分钟,L说,要能修改,于是便有了将左上角为\((a,b)\),右 ...

  6. Jenkins一个任务下载多个git库代码

    公司的项目是微服务架构,一个服务对应的一个git仓库,现在的需求时拉取所有仓库代码下来,指定父级的pom.xml,一次性构建打包 jenkins在默认情况下,一个任务只能配置一个git仓库地址 1.安 ...

  7. ASP.NET Core 2.2 基础知识(十二) 发送 HTTP 请求

    可以注册 IHttpClientFactory 并将其用于配置和创建应用中的 HttpClient 实例. 这能带来以下好处: 提供一个中心位置,用于命名和配置逻辑 HttpClient 实例. 例如 ...

  8. (转)MoMo的Unity3D研究院之Assetbundle的原理(六十一)

    http://www.xuanyusong.com/archives/2373 Assetbundle 是Unity Pro提供提供的功能,它可以把多个游戏对象或者资源二进制文件封装到Assetbun ...

  9. Cmder | 一款命令行增强工具

    文章目录 什么是cmder 安装cmder 让cmder便于使用 将cmder添加到右键菜单中 在设置中添加语言环境 设置默认使用cmd.PowerShell还是bash 调节背景的透明度 添加 ll ...

  10. Jquery中的ajax应用(第九章PPT)

    <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1&q ...