http://ac.jobdu.com/problem.php?pid=1175
明明是一道水题,却wa了15次。。。
// AC
#include<stdio.h>
#include<string.h>#include<stdlib.h>
int main()
{
int la,lb,i,flag;
char a[1010],b[1010];
int c[10];
while(scanf("%s %s",a,b)!=EOF){
la=strlen(a); lb=strlen(b); flag=0;
memset(c,0,sizeof(c));
for(i=0;i<la;i++) c[a[i]-'0']++;
if(lb<5){
for(i=b[0]-'0'+1;i<10;i++) {
if(c[i]>=lb){
flag=1;break;
}
}
}else{
for(i=b[0]-'0'+1;i<10;i++){
if(c[i]>=1 && c[i+1]>=1 && c[i+2]>=1 && c[i+3]>=1 && c[i+4]>=1){
flag=1;break;
}
}
}
if(flag) printf("YES\n");
else printf("NO\n");
}
return 0;
}
// AC
ps: 参考某人的代码时,却不说明是错误的代码,我以为是正确的,结果就一直wa啊!
#include<stdio.h>
#include<string.h>
int main()
{
int la,lb,i,j,flag,f1,f2,f3;
char a[110],b[110];
while(scanf("%s %s",a,b)!=EOF){
la=strlen(a); lb=strlen(b); flag=0;
if(lb==1){
for(i=0;i<la;i++) {
if(a[i]>b[0]) {flag=1;printf("YES\n");break;}
}
}else if(lb==2){
for(i=0;i<la-1;i++){
if(a[i]==a[i+1] && a[i]>b[0]){flag=1;printf("YES\n");break;}
}
}else if(lb==3){
for(i=0;i<la-2;i++){
if(a[i]==a[i+1] && a[i+2]==a[i] && a[i]>b[0]){
flag=1;printf("YES\n");break;
}
}
}else if(lb==4){
for(i=0;i<la-3;i++){
if(a[i]==a[i+1] && a[i+2]==a[i] && a[i+3]==a[i] && a[i]>b[0]){
flag=1;printf("YES\n");break;
}
}
}else{
for(i=0;i<la-4;i++){
f1=0;f2=0;f3=0;
if(a[i]>b[0]){
for(j=i+1;j<la;j++){
if(a[j]==a[i]+1) f1=1;
if(a[j]==a[i]+2 && f1==1) f2=1;
if(a[j]==a[i]+3 && f2==1) f3=1;
if(a[j]==a[i]+4 && f3==1) flag=1;
}
}
if(flag==1) {printf("YES\n");break;}
}
}
if(!flag) printf("NO\n");
}
return 0;
}