麻烦强人修正一道vijos题(牛的RP)

来源:百度知道 编辑:UC知道 时间:2024/05/18 16:41:51
天苍苍,野茫茫,JSZX的菜鸟们来到OI牧场旅游,看到了好多好多的牛。OI牧场所有的牛都觉得自己的Rp最高(简称RP牛),为此他们常争论不休。于是,他们让JSZX的菜菜们用最最朴素的方法找出这只RP牛。
经过讨论,最菜的mmk想出了最朴素的方法:
我们要以cows的名字为线索,来找出RP牛。
首先,得到n头牛的名字清单(每头牛的名字是一个仅包含小写字母的字符串,且这些牛的读写方式比较特殊—从右到左),然后对每头牛进行检验,检验按照牛的读写方式进行。规则如下:
1.Rp 牛的名字中必须有子串“jszxoier”
2.将名字中的每个“cow”的替换为“bird”。
3.计算Rp值:A为名字中子串“r”的个数;
B为名字中子串“p”的个数;
C为名字中字串“rp”的个数;
Rp值即为5×A+5×B+20×C。
最后输出RP牛的名字,若有多个RP牛,则输出名字最短的那个。
假如你也是牛中一员,尽管你很不屑这样的水题,但是,你很想到RP牛那里分点Rp,所以你决定解决这道题,并算出RP牛的Rp是多少。

输入格式 Input Format
第一行,一个数n(n<=3000)。
接下来的n行,每行一个字符串,长度<=300,数据保证存在RP牛。

输出格式 Output Format
共两行
第一行为RP牛的名字
第二行为RP牛的Rp值

样例输入 Sample Input
8
reioxzsjzmy
mmk
jwc
zxf
jwc
wangwei
xcy
yuhc
样例输出 Sample Output
reioxzsjzmy
5

#include<iostream>
#include<string.h>
using namespace std

输入格式 Input Format
第一行,一个数n(n<=3000)。
接下来的n行,每行一个字符串,长度<=300,数据保证存在RP牛。

输出格式 Output Format
共两行
第一行为RP牛的名字
第二行为RP牛的Rp值

样例输入 Sample Input
8
reioxzsjzmy
mmk
jwc
zxf
jwc
wangwei
xcy
yuhc
样例输出 Sample Output
reioxzsjzmy
5

#include<iostream>
#include<string.h>
using namespace std;
int strstr(char *s1,char*s2)
{
char *p1=s1,*p2=s2;

while(*p1)
{
if(*p1==*p2)
{
while(*p1&&*p2)
{
if(*p1==*p2)
{
p1++;
p2++;
}
else
{
p1=p1-(p2-s2)+1;
p2=s2;
break;
}
}
if(!*p2)
{
return 1;
}
}
p1++;
}
return 0;
}
main()
{
int i,j,n,m=0,s,k=1000000,g,a=0,b=0,c=0;
char x[400],z[]="reioxzsj",y[]="woc",w[400];
cin>>n;
for(i=1;i<=n;i++)
{
g=0;
cin>