M SunW的假期
时间限制: C/C++ 1000ms; Java 2000ms 内存限制: 65535KB
问题描述
SunW此人,好逸勿劳,天天想着放假,但周六周日实验室可能会训练,让他无法愉快的玩耍,所以他想知道距离下次节假日还有多久。
现在告诉你SunW的2019年节假日的时间表(寒暑假实验室也可能会训练,所以并没在SunW的节假日时间表内)
2019年节假日时间表:
元旦 12月30日(2018)~1月1日(2019) 共3天
春节 2月4日~2月10日 共7天
清明节 4月5日~4月7日 共3天
劳动节 5月1日~5月4日 共4天
端午节 6月7日~6月9日 共3天
中秋节 9月13日~9月15日 共3天
国庆节 10月1日~10月7日 共7天
SunW想知道还有多少天放假,现在他想让你编写程序,输出距离下次节假日放假有多少天
输入描述
输入一共两个数字A(1<=A<=12),B(1<=B<=31),表示SunW询问的日期为2019年A月B日
输出描述
如果SunW询问的日期不存在,比如4月31日,那么请你输出"?"(?是半角问号,并且不含引号)
如果SunW询问的日期是合法日期,如果当天正在放假,那么请你输出"??"(?是半角问号,并且不含引号)
如果SunW询问的日期是合法日期,当天没有放假,并且该日以后在2019年中没有节假日,那么请你输出“2020”(不含引号)
如果SunW询问的日期不是以上三种情况,那么请你输出一个整数,表示距离下次放假还有多少天(具体见样例)
样例输入
4 29
样例输出
2
解题思路:利用map对应,直接求解即可
#include<bits/stdc++.h>
using namespace std;
map<string,int>mp;
int main(){
mp["YD"]=34;
mp["CJ"]=18+31+5;
mp["QMJ"]=23+1;
mp["LDJ"]=27+7;
mp["DWJ"]=21+31+31+13;
mp["ZQJ"]=15+1;
string s;
cin>>s;
if(s=="GQJ"){
cout<<"Happy New Year !"<<endl;
}else{
cout<<mp[s]<<endl;
}
return 0;
}