试题编号: | 201509-2 |
试题名称: | 日期计算 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: | 问题描述 给定一个年份y和一个整数d,问这一年的第d天是几月几日? 输入格式 输入的第一行包含一个整数y,表示年份,年份在1900到2015之间(包含1900和2015)。 输出格式 输出两行,每行一个整数,分别表示答案的月份和日期。 样例输入 2015 样例输出 3 样例输入 2000 样例输出 2 |
#include <map>
#include <cmath>
#include <queue>
#include <cstdio>
#include <string>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <sstream>
#include <time.h>
#include <vector>
#include <list>
#include <stack>
#define INF (0x3f3f3f3f)
typedef unsigned long long ULL;
using namespace std;
int Yue_Alone[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
bool RUN(int i)
{
if (i % 400 == 0 || (i % 100 != 0 && i % 4 == 0))
return 1;
else
return 0;
}
int main()
{
int i, j, N, M;
cin >> N >> M;
ULL All = 31, Yue = 1, Day = 1,k = 1;
if (RUN(N))
Yue_Alone[1]++;
while (M > All && k < 13)
{
Yue++;
All += Yue_Alone[k++];
}
Day = M - (All - Yue_Alone[--k]);
cout << Yue << endl << Day;
return 0;
}