筱玛的快乐_牛客网

链接:https://ac.nowcoder.com/acm/contest/342/A
来源:牛客网

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 524288K,其他语言1048576K
64bit IO Format: %lld

题目描述

筱玛是个快乐的男孩子。
寒假终于到了,筱玛决定请他的朋友们一起来快乐。
对于筱玛来说,最快乐的事情莫过于翻看万年历上的日期了。
一个日期是“快乐”的,当且仅当这一年的年份是一个质数,且将月份、日期写成"MM-DD"的形式后是对称的。如:"2003-01-10"是“快乐”的。
筱玛有n个小伙伴,每个小伙伴都会提出一个问题,即:从"2000-01-01"这一天开始,第k个“快乐”的日期是什么。

输入描述:

第一行一个整数n。
接下来n行,每行一个数字k,表示一次询问。

输出描述:

输出共n行,每行一个形如"YYYY-MM-DD"的日期表示答案。
示例1

输入

复制
3
1
23
48

输出

复制
2003-01-10
2027-11-11
2063-12-21

备注:

1≤n≤10
6

保证答案存在且答案年份为4位数。

 

 1 #include <bits/stdc++.h>
 2  
 3 using namespace std;
 4  
 5 #define Max 11000
 6 bool prime[Max]={0};
 7  
 8 void IsPrime(){
 9      for(int i=2;i*i<Max;i++){
10         if(prime[i]==0){
11             for(int j=i*i;j<Max;j+=i){
12                 prime[j]=1;
13             }              
14         }
15     }
16 }
17  
18 void calprimeryear(vector<int> &vi1){
19     for(int i=2001;i<=10000;i++){
20         if(prime[i]==0){
21             vi1.push_back(i);
22         }
23     }
24 }
25  
26 int main()
27 {
28     char vs1[7][7]={"01-10","02-20","03-30","10-01","11-11","12-21"};
29     vector<int> vi1;
30     IsPrime();
31     calprimeryear(vi1);
32     int n,k;
33     scanf("%d",&n);
34     while(n--){
35         scanf("%d",&k); k--;
36         printf("%d-%s\n",vi1[k/6],vs1[k%6]);
37     }
38     return 0;
39 }

 

posted @ 2019-01-12 10:52  多一份不为什么的坚持  阅读(245)  评论(0编辑  收藏  举报