解题思路:
题目写得很迷,把题目结果写出来看,就明显了。
b c d e f g h i j 取值
归率
b d g h i
b d g h j
b d g i j
b d h i j
b e h i j
b e f g h
注意事项:
参考代码:
#include<stdio.h>
#include<string.h>
int check(int *a,int s,int t,int w)
{
int i,j,p=0,n=0;
for(i=t-1;i>=s;i--)
{
if(a[i]==0)
{
if((i==t-1&&a[i-1]==1)||(i<t-1&&a[i]==0&&a[i+1]==1&&a[i-1]==1))
{
a[i-1]=0;
a[i]=1;
p=1;
break;
}
else if(a[i-1]==1&&a[i+1]==0)
{
a[i-1]=0;
a[i]=1;
p=1;
for(j=i+1;j<=t-1;j++)
{
if(n!=0)
{
n--;
a[j]=1;
}
else
a[j]=0;
}
break;
}
}
if(a[i]==1)
n++;
}
for(i=s-1;i<=t-1;i++)
{
if(a[i]==1)
printf("%c",'a'+i);
}
printf("\n");
if(p==0)
return 0;
return 1;
}
int main()
{
int s,t,w,i;
int a[26];
char get[26];
scanf("%d %d %d",&s,&t,&w);
memset(a,0,sizeof(a));
scanf("%s",get);
for(i=0;i<w;i++)
{
a[get[i]-'a']=1;
}
for(i=0;i<5;i++)
{
if(check(a,s,t,w)==0)
{
break;
}
}
return 0;
}
0.0分
3 人评分