1056 IMMEDIATE DECODABILITY

1056 -- IMMEDIATE DECODABILITY
解くだけなら符号化とかどうでもよいですね。いくつかの文字列が与えられて、ある文字列Aがある文字列Bの接頭語になっているAとB(A!=B)があるかどうかを調べなさい、というもの。入力セットの終わりが"9"だったりと気の利いていない問題。
GCCで205byte。
(追記)インチキで173byte。

i,j,k,l;
char s[9][99];
main(n){
  for(;n;n?printf("Set %d is%s immediately decodable\n",++l,k>n?" not":""):0){
    for(n=0;~scanf("%s",s+n)&&*s[n]<50;n++);
    for(i=k=0;i<n;i++)for(j=0;j<n;)k+=strstr(s+i,s+j++)==s+i;
  }
}

文字列の数は9で大丈夫な様子。これもまた9なのか。

i,k,l;
char s[][99];
main(n){
  for(;n;n?printf("Set %d is%s immediately decodable\n",++l,k?" not":""):0)
    for(n=k=0;gets(s+n)&*s[n]-57;n++)
      for(i=0;i<n;)
        k+=strstr(s+n,s+i++)==s+n;
}

インチキがいけないことは自分でもよく分かっているのだが、むしゃくしゃしてやってしまったorz