关闭

CodeForces 260B Ancient Prophesy 模拟

标签: codeforces
391人阅读 评论(0) 收藏 举报
分类:

给出字符串找出符合"dd-mm-yyyy"格式的2013~2015年的出现次数最多的日期。

一开始写成1~len-10怒跪。。。

只要每位试一下就好了。

#include <cstdio>
#include <cctype>
#include <cstring>
char str[100005];
int month[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int cnt[4][16][32];
int main() {
	int d = -1, m = -1, y = -1, id, ansd = 0;
	scanf("%s", str);
	int len=strlen(str);
	for(int i=0;i<len-9;i++) {
		if(isdigit(str[i])&&isdigit(str[i+1])&&
			isdigit(str[i+3])&&isdigit(str[i+4])&&
			isdigit(str[i+6])&&isdigit(str[i+7])&&
			isdigit(str[i+8])&&isdigit(str[i+9])&&
			str[i+2]=='-'&&str[i+5]=='-') {
			d=(str[i+0]-48)*10+str[i+1]-48;
			m=(str[i+3]-48)*10+str[i+4]-48;
			y=(((str[i+6]-48)*10+str[i+7]-48)*10+str[i+8]-48)*10+str[i+9]-48;
			if(m>12||y<2013||y>2015||m<1)continue;
			if(d>month[m]||d<1)continue;
			if(++cnt[y-2013][m][d]>ansd)ansd=cnt[y-2013][m][d],id=i;
		}
	}
	for(int i=0;i<10;i++)putchar(str[id+i]);
	return 0;
}


B. Ancient Prophesy
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

A recently found Ancient Prophesy is believed to contain the exact Apocalypse date. The prophesy is a string that only consists of digits and characters "-".

We'll say that some date is mentioned in the Prophesy if there is a substring in the Prophesy that is the date's record in the format "dd-mm-yyyy". We'll say that the number of the date's occurrences is the number of such substrings in the Prophesy. For example, the Prophesy "0012-10-2012-10-2012" mentions date 12-10-2012 twice (first time as "0012-10-2012-10-2012", second time as "0012-10-2012-10-2012").

The date of the Apocalypse is such correct date that the number of times it is mentioned in the Prophesy is strictly larger than that of any other correct date.

A date is correct if the year lies in the range from 2013 to 2015, the month is from 1 to 12, and the number of the day is strictly more than a zero and doesn't exceed the number of days in the current month. Note that a date is written in the format "dd-mm-yyyy", that means that leading zeroes may be added to the numbers of the months or days if needed. In other words, date "1-1-2013" isn't recorded in the format "dd-mm-yyyy", and date "01-01-2013" is recorded in it.

Notice, that any year between 2013 and 2015 is not a leap year.

Input

The first line contains the Prophesy: a non-empty string that only consists of digits and characters "-". The length of the Prophesy doesn't exceed 105 characters.

Output

In a single line print the date of the Apocalypse. It is guaranteed that such date exists and is unique.

Sample test(s)
input
777-444---21-12-2013-12-2013-12-2013---444-777
output
13-12-2013


0
0
查看评论

B - Ancient Prophesy CodeForces - 260B

第二次比赛,我感受到了我心态的问题,还有思维的缺陷把。 容易钻进死胡同。 这道题题意很简单,就是要去找符合条件的字符串。/*If I get TLE , it is good.If I get AC,it's NICE !*/ #include <stdio.h> #includ...
  • Haipai1998
  • Haipai1998
  • 2017-07-19 14:44
  • 122

【CodeForces 611D】Ancient Prophesy

智障模拟。。 我也是智障。。 下面傻逼代码没有过。。 #include using namespace std; #define maxn 100100 char s[maxn]; int len; int check[]={0,31,28,31,30,31,30,31,31,30,31,30...
  • qq_33583069
  • qq_33583069
  • 2016-10-06 22:09
  • 257

cf 158div.2 B. Ancient Prophesy

要求找到严格符合的dd-mm-yyyy的出现次数最多的日期,是严格符合,多个-或少个0都不可以,所以这题直接匹配就可以了   比赛时候一直写的是分割,WA了n次……   这题主要学到了stringstream和strtok的用法。 strtok(s,"-&quo...
  • czjxy881
  • czjxy881
  • 2012-12-28 11:31
  • 309

POJ2159 Ancient Cipher【字符密码】

题目大意: 古罗马帝王的保密服务部门的保密方法是替换和重新排列。 替换方法是将出现的字符替换成其他的字符。如将'A'替换成'Z',将'Z'替换成'A'。 排列方法是改变原来单词中字母的顺序。例如将顺序变为<2,1,5,4,3,7,...
  • u011676797
  • u011676797
  • 2015-03-28 10:02
  • 969

CodeForces - 141B Hopscotch (模拟)水

CodeForces - 141B Hopscotch Time Limit:                 ...
  • yanghui07216
  • yanghui07216
  • 2016-05-12 22:23
  • 209

codeforces 602B (队列)

题意是给一个序列寻找最长的子区间使得子区间中最大元素和最小元素的差小于等于1 用队列瞎搞,先把序列处理一下,把有相邻元素相同的合并,把每个元素依次放进队列里。 如果队列是空,直接放进去;如果这个元素和队尾元素差大于1,就清空队列,计算一次区间长度;否则就用即将入队的元素和队次尾元素比较。(因为维...
  • morejarphone
  • morejarphone
  • 2015-11-25 11:08
  • 364

【codeforces 681C】【优先队列+模拟】 Heap Operations

传送门:http://codeforces.com/contest/681/problem/C 思路: 因为本题的操作是一系列关于堆的操作,而且数据规模也合适,所以我们可以直接用一个堆来模拟这些操作(可用 STL 的 priority _ queue 或 multiset ),然后动态判断当前操作...
  • guhaiteng
  • guhaiteng
  • 2016-11-13 00:16
  • 236

CF_1C_AncientBerlandCircus

C. Ancient Berland Circus time limit per test 2 seconds memory limit per test 64 megabytes input standard input output standar...
  • baidu_29410909
  • baidu_29410909
  • 2016-03-20 23:26
  • 312

poj-2159-Ancient Cipher

字符串的水题,说要怎么怎么转化怎么怎么匹配,其实一眼就能看出只需要匹配字符个数就好了#include #include #include #include using namespace std; int main() { char s1[105],s2[105]; int a[...
  • Ypopstar
  • Ypopstar
  • 2016-03-23 22:42
  • 158

编程之道--Book Two - The Ancient Masters

摘自《编程之道》 将此书献给那些爱笑也爱思考的程序设计者,以及那些同程序设计者打交道的管理人员,当然他们也爱笑爱思考。  编程之道--Book Two - The Ancient Masters Thus spa...
  • hitwhylz
  • hitwhylz
  • 2013-10-01 18:17
  • 1292
    个人资料
    • 访问:179185次
    • 积分:6162
    • 等级:
    • 排名:第4811名
    • 原创:449篇
    • 转载:7篇
    • 译文:0篇
    • 评论:7条
    神犇们的后庭院
    wzq_QwQ http://blog.csdn.net/wzq_QwQ
    vmurder http://blog.csdn.net/vmurder/
    PoPoQQQ http://blog.csdn.net/popoqqq/
    YJQ神犇 http://tarawa.github.io/
    ?神?论文
    http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf