记录编号 |
324407 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[NOIP 2011]统计单词数 |
最终得分 |
100 |
用户昵称 |
爆零自动机 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.051 s |
提交时间 |
2016-10-18 08:03:26 |
内存使用 |
1.27 MiB |
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
char wrd[20],ssy[1000000+10];
int lenw,lens,ans;
int first=-1,cnt;
void downn(char a[]);
void frmtn(char a[]);
void find1(char a[],char b[]);
int main()
{
freopen("stat.in","r",stdin);
freopen("stat.out","w",stdout);
cin>>wrd;gets(ssy);gets(ssy);
lenw=strlen(wrd);downn(wrd);
lens=strlen(ssy);downn(ssy);
frmtn(wrd);
frmtn(ssy);
find1(ssy,wrd);
if(cnt==0) cout<<-1<<endl;
else
cout<<cnt<<' '<<first<<endl;
return 0;
}
void frmtn(char a[])
{
int len=strlen(a);
for(int i=len; i>0; i--)
a[i]=a[i-1];
a[len+1]=' '; a[0]=' ';
}
void downn(char a[])
{
int len;
len=strlen(a);
for(int i=0; i<len; i++)
{
if(a[i]>='A' && a[i]<='Z')
a[i]+='a'-'A';
}
}
void find1(char a[],char b[])
{
char *p=NULL;
p=strstr(a,b);
if (p!=NULL)
{
first=p-a;
}
while (p!=NULL)
{
p=strstr(p+strlen(b)-1,b);
cnt++;
}
}