| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
大牛帮忙看看为什么WA了呢 ??#include <iostream>
using namespace std;
const int prim=1000001;
char q[51000][300];
struct h
{
int key;
int num;
}hash[prim];
void insert(long v)
{
long key=v; while(key<0) key+=prim;
if(key>=prim) key=key%prim;
while(hash[key].num!=0)
{
if(hash[key].key==v){ hash[key].num++; return; }
key=(key+1)%prim;
}
hash[key].num=1; hash[key].key=v;
}
int search(long v)
{
long key=v; while(key<0) key+=prim;
if(key>=prim) key=key%prim;
while(hash[key].num!=0)
{
if(hash[key].key==v) return hash[key].num;
key=(key+1)%prim;
}
return 0;
}
int main()
{
char p[300];
int num;
scanf("%d",&num);
int i,j;
int sum;
for(i=0;i<num;i++)
{
sum=0;
scanf("%s",p);
for(j=0;j<strlen(p);j++)
{
sum=sum*26+p[j]-'a'+1;
sum%=prim;
}
insert(sum);
}
int aim=0;
int que;
scanf("%d",&que);
int k;
for(k=0;k<que;k++)
{
aim=0;
bool flag=0;
while(1)
{
sum=0;
scanf("%s",q[aim++]);
if(q[aim-1][0]=='-'&&q[aim-1][1]=='1')
{
break;
}
for(i=0;i<strlen(q[aim-1]);i++)
{
sum=sum*26+q[aim-1][i]-'a'+1;
sum%=prim;
}
if(search(sum)==0)
{
flag=1;
}
}
if(flag==0)
{
printf("Email %d is spelled correctly.\n",k+1);
printf("End of Output\n");
}
else
{
printf("Email %d is not spelled correctly.\n",k+1);
for(i=0;i<aim-1;i++)
{
sum=0;
for(j=0;j<strlen(q[i]);j++)
{
sum=sum*26+q[i][j]-'a'+1;
sum%=prim;
}
if(search(sum)==0)
{
printf("%s\n",q[i]);
}
}
printf("End of Output\n");
}
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator