题目(题目链接:https://codeforces.com/problemset/problem/733/A):  

A. Grasshopper And the String
time limit per test:1 second
memory limit per test:256 megabytes
input:standard input
output:standard output

One day, the Grasshopper was jumping on the lawn and found a piece of paper with a string. Grasshopper became interested what is the minimum jump ability he should have in order to be able to reach the far end of the string, jumping only on vowels of the English alphabet. Jump ability is the maximum possible length of his jump.

Formally, consider that at the begginning the Grasshopper is located directly in front of the leftmost character of the string. His goal is to reach the position right after the rightmost character of the string. In one jump the Grasshopper could jump to the right any distance from 1 to the value of his jump ability.

The picture corresponds to the first example.

The following letters are vowels: 'A', 'E', 'I', 'O', 'U' and 'Y'.

Input

The first line contains non-empty string consisting of capital English letters. It is guaranteed that the length of the string does not exceed 100.

Output

Print single integer a — the minimum jump ability of the Grasshopper (in the number of symbols) that is needed to overcome the given string, jumping only on vowels.

Examples

input
ABABBBACFEYUKOTT
output
4
input
AAA
output
1

       版本1代码:

 #include <bits/stdc++.h>

 using namespace std;

 int main()
{
char Str[];
int index, ans;
while( ~scanf( "%s", Str ) )
{
index = ans = ;
for( int i = ; Str[i] != '\0'; i ++ )///'A', 'E', 'I', 'O', 'U' and 'Y'.
{
index ++;
if( Str[i] == 'A' || Str[i] == 'E' || Str[i] == 'I' || Str[i] == 'O' || Str[i] == 'U' || Str[i] == 'Y' )
{
ans = index >= ans ? index : ans;
index = ;
}
}
//ans = index >= ans ? index : ans;
printf( "%d\n", ans );
}
return ;
}

版本2代码:

 #include <bits/stdc++.h>

 using namespace std;

 int main()
{
char Str[];
int index, ans;
while( ~scanf( "%s", Str ) )
{
index = ans = ;
if( strlen(Str) == && !( Str[] == 'A' || Str[] == 'E' || Str[] == 'I' || Str[] == 'O' || Str[] == 'U' || Str[] == 'Y' ) )
{
printf( "2\n" );
break;
}
for( int i = ; Str[i] != '\0'; i ++ )///'A', 'E', 'I', 'O', 'U' and 'Y'.
{
index ++;
if( Str[i] == 'A' || Str[i] == 'E' || Str[i] == 'I' || Str[i] == 'O' || Str[i] == 'U' || Str[i] == 'Y' )
{
ans = index >= ans ? index : ans;
index = ;
}
}
ans = index >= ans ? index : ans;
printf( "%d\n", ans );
}
return ;
}

版本3代码:

 #include <bits/stdc++.h>

 using namespace std;

 int main()
{
char Str[];
int index, ans;
bool flag;
while( ~scanf( "%s", Str ) )
{
flag = false;
index = ans = ;
if( strlen(Str) == && !( Str[] == 'A' || Str[] == 'E' || Str[] == 'I' || Str[] == 'O' || Str[] == 'U' || Str[] == 'Y' ) )
{
printf( "2\n" );
break;
}
for( int i = ; Str[i] != '\0'; i ++ )///'A', 'E', 'I', 'O', 'U' and 'Y'.
{
index ++;
if( Str[i] == 'A' || Str[i] == 'E' || Str[i] == 'I' || Str[i] == 'O' || Str[i] == 'U' || Str[i] == 'Y' )
{
ans = index >= ans ? index : ans;
index = ;
flag = true;
}
}
if( strlen(Str) > && !flag )
{
printf( "%d\n", strlen(Str) + );
break;
}
ans = index >= ans ? index : ans;
printf( "%d\n", ans );
}
return ;
}

版本4代码:

 #include <bits/stdc++.h>

 using namespace std;

 int main()
{
char Str[];
int vis[];
int index, ans, last;
while( ~scanf( "%s", Str ) )
{
last = -;
memset( vis, , sizeof(vis) );
index = ;
ans = ;
for( int i = ; Str[i] != '\0'; i ++ )///'A', 'E', 'I', 'O', 'U' and 'Y'.
{
index ++;
if( Str[i] == 'A' || Str[i] == 'E' || Str[i] == 'I' || Str[i] == 'O' || Str[i] == 'U' || Str[i] == 'Y' )
{
vis[index] = i + ;
last = i;
}
}
int tmp = ;
for( int i = ; i < index; i ++ )
{
if(vis[i])
{
///printf( "%d ", vis[i] );
ans = max( vis[i] - tmp, ans );
tmp = vis[i];
}
}
int L = strlen(Str);
ans = max( L - last, ans );
///printf( "last = %d,\tL = %d\n", last, L );
printf( "%d\n", ans );
}
return ;
}

版本5代码:

 #include <bits/stdc++.h>

 using namespace std;

 int main()
{
char Str[];
int vis[];
int index, ans, last;
while( ~scanf( "%s", Str ) )
{
last = -;
memset( vis, , sizeof(vis) );
index = ;
ans = ;
for( int i = ; Str[i] != '\0'; i ++ )///'A', 'E', 'I', 'O', 'U' and 'Y'.
{
index ++;
if( Str[i] == 'A' || Str[i] == 'E' || Str[i] == 'I' || Str[i] == 'O' || Str[i] == 'U' || Str[i] == 'Y' )
{
vis[index] = i + ;
last = i;
}
}
int tmp = ;
for( int i = ; i < index; i ++ )
{
if(vis[i])
{
//printf( "%d ", vis[i] );
ans = max( vis[i] - tmp, ans );
tmp = vis[i];
}
}
int L = strlen(Str);
ans = max( L - last, ans );
//printf( "\nlast = %d,\tL = %d\n", last, L );
printf( "%d\n", ans );
}
return ;
}

版本6代码:

 #include <bits/stdc++.h>

 using namespace std;

 int main()
{
char Str[];
int vis[];
int index, ans, last;
while( ~scanf( "%s", Str ) )
{
last = -;
memset( vis, , sizeof(vis) );
index = ;
ans = ;
for( int i = ; Str[i] != '\0'; i ++ )///'A', 'E', 'I', 'O', 'U' and 'Y'.
{
index ++;
if( Str[i] == 'A' || Str[i] == 'E' || Str[i] == 'I' || Str[i] == 'O' || Str[i] == 'U' || Str[i] == 'Y' )
{
vis[index] = i + ;
last = vis[index];
}
}
int tmp = ;
for( int i = ; i < index; i ++ )
{
if(vis[i])
{
//printf( "%d ", vis[i] );
ans = max( vis[i] - tmp, ans );
tmp = vis[i];
}
}
int L = strlen(Str);
ans = max( L - last, ans );
//printf( "\nlast = %d,\tL = %d\n", last, L );
printf( "%d\n", ans );
}
return ;
}

版本7代码:

 #include <bits/stdc++.h>

 using namespace std;

 int main()
{
char Str[];
int vis[];
int index, ans, last, Tmp;
while( ~scanf( "%s", Str ) )
{
last = -;
memset( vis, , sizeof(vis) );
index = ;
ans = ;
for( int i = ; Str[i] != '\0'; i ++ )///'A', 'E', 'I', 'O', 'U' and 'Y'.
{
index ++;
if( Str[i] == 'A' || Str[i] == 'E' || Str[i] == 'I' || Str[i] == 'O' || Str[i] == 'U' || Str[i] == 'Y' )
{
vis[index] = i + ;
last = i;
} }
int tmp = ;
for( int i = ; i <= index; i ++ )
{
if(vis[i])
{
///printf( "%d ", vis[i] );
ans = max( vis[i] - tmp, ans );
tmp = vis[i];
}
}
int L = strlen(Str);
ans = max( L - last, ans );
///printf( "\nlast = %d,\tL = %d\n", last, L );
printf( "%d\n", ans );
}
return ;
}

版本8代码:

 #include <bits/stdc++.h>

 using namespace std;

 int main()
{
char Str[];
int vis[];
int index, ans, last;
while( ~scanf( "%s", Str ) )
{
last = -;
memset( vis, , sizeof(vis) );
index = ;
ans = ;
for( int i = ; Str[i] != '\0'; i ++ )///'A', 'E', 'I', 'O', 'U' and 'Y'.
{
index ++;
if( Str[i] == 'A' || Str[i] == 'E' || Str[i] == 'I' || Str[i] == 'O' || Str[i] == 'U' || Str[i] == 'Y' )
{
vis[index] = i + ;
last = i;
}
}
int tmp = ;
for( int i = ; i <= index; i ++ )
{
if(vis[i])
{
//printf( "%d ", vis[i] );
ans = max( vis[i] - tmp, ans );
tmp = vis[i];
}
}
int L = strlen(Str);
ans = max( L - last, ans );
ans = max( vis[ index - ] - vis[ index - ], ans );
//printf( "\nlast = %d,\tL = %d,\tindex = %d\n", last, L,index );
printf( "%d\n", ans );
}
return ;
}

版本9代码:

 #include <bits/stdc++.h>

 using namespace std;

 int main()
{
char Str[];
int vis[];
int index, ans, last;
while( ~scanf( "%s", Str ) )
{
last = -;
memset( vis, , sizeof(vis) );
index = ;
ans = ;
for( int i = ; Str[i] != '\0'; i ++ )///'A', 'E', 'I', 'O', 'U' and 'Y'.
{
index ++;
if( Str[i] == 'A' || Str[i] == 'E' || Str[i] == 'I' || Str[i] == 'O' || Str[i] == 'U' || Str[i] == 'Y' )
{
vis[index] = i + ;
last = i;
}
}
int tmp = ;
for( int i = ; i <= index; i ++ )
{
if(vis[i])
{
//printf( "%d ", vis[i] );
ans = max( vis[i] - tmp, ans );
tmp = vis[i];
}
}
int L = strlen(Str);
ans = max( L - last, ans );
if( index >= )
ans = max( vis[ index - ] - vis[ index - ], ans );
//printf( "\nlast = %d,\tL = %d,\tindex = %d\n", last, L,index );
printf( "%d\n", ans );
}
return ;
}

版本10代码:

 #include <bits/stdc++.h>

 using namespace std;

 int main()
{
char Str[];
int vis[];
int index, ans, last, tot;
while( ~scanf( "%s", Str ) )
{
last = -;
memset( vis, , sizeof(vis) );
tot = index = ;
ans = ;
for( int i = ; Str[i] != '\0'; i ++ )///'A', 'E', 'I', 'O', 'U' and 'Y'.
{
tot ++;
if( Str[i] == 'A' || Str[i] == 'E' || Str[i] == 'I' || Str[i] == 'O' || Str[i] == 'U' || Str[i] == 'Y' )
{
vis[ index ++ ] = i + ;
last = i;
}
}
int tmp = ;
for( int i = ; i <= tot; i ++ )
{
if(vis[i])
{
//printf( "%d ", vis[i] );
ans = max( vis[i] - tmp, ans );
tmp = vis[i];
}
}
int L = strlen(Str);
ans = max( L - last, ans );
if( index >= )
ans = max( vis[ index - ] - vis[ index - ], ans );
//printf( "\nlast = %d,\tL = %d,\tindex = %d\n", last, L,index );
printf( "%d\n", ans );
}
return ;
}

其实为了解决这道水题,不止这10个版本的代码,还有中间经过测试后弃用的。归根结底,还是太菜了,能力太差,编程技术烂导致的。

图1 艰难的AC之路

一道在CF上WA了9次才AC的A题题目与10个版本的代码代码的更多相关文章

  1. CF上的3道小题(2)

    CF上的3道小题(2) T1:CF630K Indivisibility 题意:给出一个数n,求1到n的数中不能被2到9中任意一个数整除的数. 分析:容斥一下,没了. 代码: #include < ...

  2. CF上的3道小题(1)

    CF上的3道小题 终于调完了啊.... T1:CF702E Analysis of Pathes in Functional Graph 题意:你获得了一个n个点有向图,每个点只有一条出边.第i个点的 ...

  3. Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):5、Maven版本发布与后续版本更新(大结局)

    文章目录: Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):1.JIRA账号注册 Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):2.PGP ...

  4. cf上分的失落->高兴->更失落

    cf昨日做出一个题居然div2打了1800多名直接上分了...我原以为垂直落地但是....我现在1399差一分就能蓝名了啊啊啊啊,以后不一定会有这个水平的啊,给个蓝名体验卡不行吗,多加一分会死啊... ...

  5. 帮朋友 解决一道 LeetCode QJ上问题

    引言 对于刷题,自己是没能力的. 最经一个朋友同事考我一道数组题 . 也许能当面试分享吧. 娱乐娱乐. 事情的开始是这样的. 前言 题目 截图 大概意思 是 在一个 数组中,找出其中两个不重复出现的元 ...

  6. One day one cf,Keep Wa away from me.

    Codeforces Round #379 (Div. 2) A水,算字符个数 B水,贪心优先组成后者 C贪心尺取,以消耗排序change那个,然后贪心另一个 D对角线就是x0+y0 == x1+y1 ...

  7. 一道在输入上有坑点的LCS

    原题连接 http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=114&p ...

  8. CF上部分树形DP练习题

    本次 5 道题均来自Codeforce 关于树形DP的算法讲解:Here 791D. Bear and Tree Jumps 如果小熊每次能跳跃的距离为1,那么问题变为求树上任意两点之间距离之和. 对 ...

  9. 关于一道面试题【字符串 '1 + (5 - 2) * 3',怎么算出结果为10,'eval'除外】

    最近徘徊在找工作和继续留任的纠结之中,在朋友的怂恿下去参加了一次面试,最后一道题目是: 写一个函数,输入一个字符串的运算式,返回计算之后的结果.例如这样的: '1 + (5 - 2) * 3',计算出 ...

随机推荐

  1. 无向图的边双连通分量(EBC)

    嗯,首先边双连通分量(双连通分量之一)是:在一个无向图中,去掉任意的一条边都不会改变此图的连通性,即不存在桥(连通两个边双连通分量的边),称作边双连通分量.一个无向图的每一个极大边双连通子图称作此无向 ...

  2. Spring Cache无效的问题以及解决办法

    http://blog.csdn.net/kimylrong/article/details/50126979 @Cacheable标注的方法,如果其所在的类实现了某一个接口,那么该方法也必须出现在接 ...

  3. Poj 3666 Making the Grade (排序+dp)

    题目链接: Poj 3666 Making the Grade 题目描述: 给出一组数,每个数代表当前位置的地面高度,问把路径修成非递增或者非递减,需要花费的最小代价? 解题思路: 对于修好的路径的每 ...

  4. HDU6446(树上、排列的贡献计算)

    关键点在于:全排列中,任意两点u.v相邻的次数一定是(n - 1)! * 2次,即一个常数(可以由高中数学知识计算,将这两个点捏一起然后全排列然后乘二:或者用n! / C(2, n)). 这之后就好算 ...

  5. Codeforces Round #319 (Div. 2)

    水 A - Multiplication Table 不要想复杂,第一题就是纯暴力 代码: #include <cstdio> #include <algorithm> #in ...

  6. Win7执行应用报CLR20r3错误处理记录

    Windows7环境下运行应用报"CLR20r3"错误,错误信息如下: 问题详细信息: 问题签名: 问题事件名称: CLR20r3 问题签名 : qbbtools.exe 问题签名 ...

  7. (028)[技术资料]et99加密狗打开函数的一个小bug

    et99加密狗的打开函数,其官方vb调用申明如下:Declare Function et_OpenToken Lib "FT_ET99_API.dll" (ByRef et99ha ...

  8. [已读]基于MVC的Javascript Web 富应用开发

    这本书是12年出版,我买的时间应该是13年,书架上唯一一本盗版→ → 但是看完是在今年. 因为刚拿到的时候,读起来很是磕磕绊绊,就搁置了蛮久.到第二次拿起来的时候,发现已经有部分内容过时,但我还是觉得 ...

  9. Backbone学习记录(2)

    创建一个集合 1)new Backbone.Collection()方式 var user=new Backbone.Model({'name':'susan'}); var list=new Bac ...

  10. RHEL6.5---LVS(IP-TUN)

    实验环境: 主机名 IP  所需软件 master eth0==>192.168.30.160(RIP) eth0:1==>192.168.30.130(VIP) ipvsadm node ...