Problem Description

世界上最遥远的距离
不是生与死
而是我就站在你面前
你却不知道我爱你

世界上最遥远的距离
不是我就站在你面前你却不知道我爱你
而是明明知道彼此相爱
却不能在一起

世界上最遥远的距离
不是明明知道彼此相爱却不能在一起
而是相约好了私奔的时间
我穿越到了未来 你却回去了古代

——摘自《小Q失恋日记 》第117卷513页


当小Q使出浑身解数,终于赢得HR女神芳心的时候,却出现了一个意外情况,那就是白富美HR的妈妈并不同意他们交往,当听说小Q只是一个码农,特别是听说小Q曾经参加过资本主义国家发起的SM/ICPC比赛的时候,更是坚决反对!

爱情是伟大的,但是得不到亲人祝福的爱情却备受折磨,小Q和HR相约在腾讯第二届编程马拉松大赛进行到第5天的时候(即2013年3月24日),一起“向前穿越D天,然后开启幸福新生活”。

其勇气可谓令人赞叹,但可怜的小Q却总是备受折磨——小Q理解的”向前穿越”是朝着未来的方向,而女友HR理解的“向前穿越”却是朝着古代的方向!

假设已知现在的日期和穿越的天数D,你能计算出小Q和女友各自到达的年代吗?

 
Input
输入首先包含一个整数N,表示有N组测试用例;

接下来N行是N组数据,每一行包含一个正整数D(D<=10,0000),D表示向前穿越的天数。
 
Output
请计算并输出小Q和女友分别到达的日期,日期格式为YYYY/MM/DD,两个日期中间用一个空格隔开,每组数据占一行,具体输出格式请参见样例。
 
Sample Input
2
6
30
 
Sample Output
2013/03/30 2013/03/18
2013/04/23 2013/02/22
 
Source
#include<stdio.h>
int main()
{
int y[2],m[2],d[2],day,k,tm,dr,i,flog,t; scanf("%d",&t);
while(t--)
{
y[0]=2013;
scanf("%d",&day);
dr=(day+31+28+24)%365;
k=(day+31+28+24)/365;
m[0]=1;d[0]=0;
for(i=1;i<=k;i++)
{
if(y[0]%400==0||y[0]%4==0&&y[0]%100!=0)
dr--;
y[0]++;
if(dr<1)
{
k--;dr=365;
}
}
for(i=1;i<=dr;i++)
{
flog=0;
if(y[0]%400==0||y[0]%4==0&&y[0]%100!=0)
flog=1;
d[0]++;
if(m[0]==1)
{tm=d[0]/32;d[0]%=31;m[0]+=tm;if(d[0]==0)d[0]=31;}
else if(m[0]==2)
{
if(flog){tm=d[0]/30;d[0]%=29;m[0]+=tm;if(d[0]==0)d[0]=29;}
else {tm=d[0]/29;d[0]%=28;m[0]+=tm;if(d[0]==0)d[0]=28;}
}
else if(m[0]==3)
{tm=d[0]/32;d[0]%=31;m[0]+=tm;if(d[0]==0)d[0]=31;}
else if(m[0]==4)
{tm=d[0]/31;d[0]%=30;m[0]+=tm;if(d[0]==0)d[0]=30;}
else if(m[0]==5)
{tm=d[0]/32;d[0]%=31;m[0]+=tm;if(d[0]==0)d[0]=31;}
else if(m[0]==6)
{tm=d[0]/31;d[0]%=30;m[0]+=tm;if(d[0]==0)d[0]=30;}
else if(m[0]==7)
{tm=d[0]/32;d[0]%=31;m[0]+=tm;if(d[0]==0)d[0]=31;}
else if(m[0]==8)
{tm=d[0]/32;d[0]%=31;m[0]+=tm;if(d[0]==0)d[0]=31;}
else if(m[0]==9)
{tm=d[0]/31;d[0]%=30;m[0]+=tm;if(d[0]==0)d[0]=30;}
else if(m[0]==10)
{tm=d[0]/32;d[0]%=31;m[0]+=tm;if(d[0]==0)d[0]=31;}
else if(m[0]==11)
{tm=d[0]/31;d[0]%=30;m[0]+=tm;if(d[0]==0)d[0]=30;}
else if(m[0]==12)
{tm=d[0]/32;d[0]%=31;m[0]+=tm;if(d[0]==0)d[0]=31;}
if(m[0]>12){y[0]++;m[0]%=12;}
} y[1]=2013;
dr=day%365;
k=day/365;
if(dr==0){dr=365;k--;}
m[1]=3;d[1]=24;
for(i=1;i<=k;i++)
{
if(y[1]%400==0||y[1]%4==0&&y[1]%100!=0)
dr--;
y[1]--;
if(dr<1)
{
k--;dr=365;
}
} for(i=1;i<=dr;i++)
{
flog=0;
if(y[1]%400==0||y[1]%4==0&&y[1]%100!=0)
flog=1;
d[1]--;
if(m[1]==1&&d[1]==0)
{
d[1]=31;m[1]=12;y[1]--;
}
else if(m[1]==2&&d[1]==0)
{
d[1]=31;m[1]--;
}
else if(m[1]==3&&d[1]==0)
{
d[1]=28;m[1]--;
if(flog) d[1]++;
}
else if(m[1]==4&&d[1]==0)
{d[1]=31;m[1]--;}
else if(m[1]==5&&d[1]==0)
{d[1]=30;m[1]--;}
else if(m[1]==6&&d[1]==0)
{d[1]=31;m[1]--;}
else if(m[1]==7&&d[1]==0)
{d[1]=30;m[1]--;}
else if(m[1]==8&&d[1]==0)
{d[1]=31;m[1]--;}
else if(m[1]==9&&d[1]==0)
{d[1]=31;m[1]--;}
else if(m[1]==10&&d[1]==0)
{d[1]=30;m[1]--;}
else if(m[1]==11&&d[1]==0)
{d[1]=31;m[1]--;}
else if(m[1]==12&&d[1]==0)
{d[1]=30;m[1]--;}
}
printf("%d/%02d/%02d %d/%02d/%02d\n",y[0],m[0],d[0],y[1],m[1],d[1]);
}
}
/*
54
365
2014/03/24 2012/03/24
6623
2031/05/12 1995/02/04
3478
2022/10/01 2003/09/15
647
2014/12/31 2011/06/16
0239
2013/11/18 2012/07/28
68278
2200/03/02 1826/04/16
5477
2028/03/22 1998/03/26
53
2013/05/16 2013/01/30
646
2014/12/30 2011/06/17
4678
2026/01/13 2000/06/02
384787
3066/09/27 0959/09/19
748
2015/04/11 2011/03/07
*/

hdu4515小Q系列故事——世界上最遥远的距离的更多相关文章

  1. HDU-4515 小Q系列故事——世界上最遥远的距离

    小Q系列故事——世界上最遥远的距离 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) ...

  2. hdu---(4515)小Q系列故事——世界上最遥远的距离(模拟题)

    小Q系列故事——世界上最遥远的距离 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)T ...

  3. 【HDOJ】4515 小Q系列故事——世界上最遥远的距离

    简单题目,先把时间都归到整年,然后再计算.同时为了防止减法出现xx月00日的情况,需要将d先多增加1,再恢复回来. #include <cstdio> #include <cstri ...

  4. hdu4505小Q系列故事——电梯里的爱情

    小Q系列故事——电梯里的爱情 Time Limit: 300/100 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Tota ...

  5. HDU 4520 小Q系列故事――最佳裁判(STL)

    小Q系列故事——最佳裁判 Problem Description 过去的2012年对小Q来说是很悲催的一年,失恋了12次,每次都要郁闷1个来月. 好在小Q是个体育迷,在最痛苦的时候,他常常用观看各种体 ...

  6. 小Q系列故事——电梯里的爱情

    小Q系列故事——电梯里的爱情 Time Limit : 300/100ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total ...

  7. (比赛)C - 小Q系列故事——最佳裁判(水题)

    C - 小Q系列故事——最佳裁判 Time Limit:200MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Des ...

  8. 小Q系列故事——屌丝的逆袭

    小Q系列故事——屌丝的逆袭 Problem Description 毕业于普通本科的小Q一直自称是资深屌丝,不仅学校不知名,甚至他自己在这个普通学校也是默默无闻——直到临近毕业的时候,班里5朵金花中的 ...

  9. HDUOJ-----4510 小Q系列故事——为什么时光不能倒流

    小Q系列故事——为什么时光不能倒流 Time Limit: 300/100 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)T ...

随机推荐

  1. 《深入理解Android2》读书笔记(八)

    接上篇<深入理解Android2>读书笔记(七) AMS中的进程管理 AMS对进程的管理仅涉及两个方面 1.调节进程的调度优先级和调度策略 2.调节进程的oom值 调度优先级和调度策略 1 ...

  2. summernote富文本编辑器配合validate表单验证无法进行表单提交的问题

    1.使用summernote富文本编辑器提交图片到服务器 在使用bootstrap中,我们用到了summernote富文本编辑器,使用summernote将图片上传到服务器中,参考我的上篇文章http ...

  3. 运行hadoop的时候提示物理内存或虚拟内存溢出的解决方案running beyond physical memory或者beyond vitual memory limits

    当运行中出现Container is running beyond physical memory这个问题出现主要是因为物理内存不足导致的,在执行mapreduce的时候,每个map和reduce都有 ...

  4. 并发系列1----大白话聊聊Java并发面试问题之volatile到底是什么?【石杉的架构笔记】

  5. Codeforces Round #307 (Div. 2) E. GukiZ and GukiZiana(分块)

    E. GukiZ and GukiZiana time limit per test 10 seconds memory limit per test 256 megabytes input stan ...

  6. 进入CentOS7紧急模式恢复root密码

    第一步.重启CentOS7,在以下界面选择要编辑的内核(一般第一个),按e进入编辑界面 第二步.在编辑界面找到如下一行,将ro改为rw init=/sysroot/bin/sh.改完后<Ctrl ...

  7. BZOJ 2467 [中山市选2010]生成树(组合数学)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2467 [题目大意] 有一种图形叫做五角形圈.一个五角形圈的中心有1个由n个顶点和n条边 ...

  8. BZOJ 3809 Gty的二逼妹子序列(莫队+分块)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3809 [题目大意] 给定一个长度为n(1<=n<=100000)的正整数序 ...

  9. [xsy2282]cake

    题意:一个$n\times n$的有标号点阵,现在用一条直线把它们分成两部分,问有多少种不同的分法 结论:方案数就是以点阵上的点为端点且不经过第三个点的线段数 对一个满足要求的线段,将其绕中点顺时针转 ...

  10. Semaphore(信号量)源码分析

    1. Semaphore Semaphore和ReentrantReadWriteLock.ReadLock(读锁)都采用AbstractOwnableSynchronizer共享排队的方式实现. 关 ...