【hihocoder 1258 Osu! Master】

2015北京区域赛现场赛签到题。

题面:http://media.hihocoder.com/contests/icpcbeijing2015/problems.pdf

OJ链接:http://hihocoder.com/problemset/problem/1258?sid=788340

题意:T组数据,每组为一个长度为n序列,每个元素为下面三种格式之一:

  C x 

  B x 

  S

其中x为一个正整数,x值从1连续增长到k的一组[C|B]序列视为一个pattern,单独的一个S视为一个pattern。统计序列中pattern的总数

数据范围:T [1, 100],  n [0, 10^4]

WA在了把每个行存成一个字符串,只判断数字第一位是否为'1'。这样没有考虑多于1位数的情况,如12。

 1 #include <cstdio>
 2 using namespace std;
 3 
 4 int n;
 5 
 6 int main(){
 7     freopen("1258.txt", "r", stdin);
 8     while(scanf("%d", &n)!=EOF){
 9         //printf("n: %d\n", n);
10         int cnt = 0;
11         getchar(); //吸收第一个n后的回车
12         for(int i=0; i<n; i++){
13             char s[10];
14             gets(s);//gets()以当前字符开始,以回车结束
15             //printf("%s\n", s);
16             switch(s[0]){
17                 case 'S': cnt++; break;
18                 default: 
19                     if(s[2]=='1' && s[3]=='\0'){//WA在这里,注意多位数的情况,如12
20                         cnt++;
21                         break;
22                     }
23             }
24         }
25         printf("%d\n", cnt);
26     }
27     return 0;
28 }

 

posted @ 2016-05-06 13:08  helena_wang  阅读(161)  评论(0编辑  收藏  举报