【zznu-夏季队内积分赛3-J】追忆
题目描述
“别人总说我瓜,其实我一点也不瓜,大多数时候我都机智的一批“
现在是阳历2018/8/7,宝儿姐想起自己参加ACM整整1000天了。她想知道她刚入坑是什么时间。那么问题来了,请帮宝儿姐追忆一下某个时间之前n天是什么时间吧。
现在是阳历2018/8/7,宝儿姐想起自己参加ACM整整1000天了。她想知道她刚入坑是什么时间。那么问题来了,请帮宝儿姐追忆一下某个时间之前n天是什么时间吧。
输入
多实例输入以EOF结束
每行四个数字year month day n用空格隔分别代表 当前年月日,以及查询天数。
每行四个数字year month day n用空格隔分别代表 当前年月日,以及查询天数。
输出
输出一个日期,年月日用空格隔开。
样例输入
2018 08 07 1
2018 08 07 8
2018 08 07 1000
样例输出
2018 08 06
2018 07 30
2015 11 11
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=1050; int a[22]= {0,31,28,31,30,31,30,31,31,30,31,30,31}; bool run(int year) { return year%4==0 && year%100!=0 || year%400==0; } int main() { int y , m , d , add; while (~scanf("%d%d%d%d", &y, &m, &d, &add)) { while (add -- ) { if (d == 1) { if (m == 1) { y --; m = 12; d = 31; } else if (m == 3) { m = 2; if (run(y)) d = 29; else d = 28; } else { m --; d = a[m]; } } else d --; } printf("%04d %02d %02d\n", y, m, d); } return 0; }