| ||||||||||
| 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 | |||||||||
Re:zoj上ac 在这里waIn Reply To:zoj上ac 在这里wa Posted by:javaman at 2005-09-21 08:14:25 我试了一下你的程序
把qsort去掉就AC了
> #include <stdio.h>
> #include <string.h>
> #include <stdlib.h>
>
> #define N 10001
> #define M 27
>
> char s[N][M],word[M];
> int id[N];
>
> int cmp(const void *x,const void *y) {
> int a=*(int*) x,b=*(int*) y;
> return strcmp(s[a],s[b]);
> }
>
> int replace(char *s,char *w) {
> int lens=strlen(s),lenw=strlen(w),i,p;
> if (lens==lenw) {
> p=0;
> for (i=0;i<lens;++i)
> if (s[i]!=w[i]) {
> if (p) return 0;
> p=1;
> }
> return 1;
> }
> if (lens+1==lenw) {
> i=0;
> while ((i<lens) && (s[i]==w[i])) ++i;
> for (++i;i<lenw;++i)
> if (s[i-1]!=w[i]) return 0;
> return 1;
> }
> if (lens==lenw+1) {
> i=0;
> while ((i<lenw) && (s[i]==w[i])) ++i;
> for (++i;i<lens;++i)
> if (s[i]!=w[i-1]) return 0;
> return 1;
> }
> return 0;
> }
>
> main() {
> int z,n,i;
>
> for (z=1;z>0;--z) {
> for (n=0;;++n) {
> scanf("%s",s[n]);
> if (s[n][0]=='#') break;
> id[n]=n;
> }
> qsort(id,n,sizeof(int),cmp);
> while (1) {
> scanf("%s",word);
> if (word[0]=='#') break;
> for (i=0;i<n;++i)
> if (!strcmp(s[i],word)) break;
> if (i<n) {
> printf("%s is correct\n",word);
> continue;
> }
> printf("%s:",word);
> for (i=0;i<n;++i)
> if (replace(s[id[i]],word)) printf(" %s",s[id[i]]);
> printf("\n");
> }
> if (z>1) printf("\n");
> }
> }
>
>
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator