描述:好坑人的题,主要是这道题存在这样的数据A:B;B:CE;CG:D;D:E;E:F;F:G;G:H;H:A,结果好几次wa……
#include
#include
#include
int count,len,sum,max;
int score[27],flag[27],out[27],num[27][27];
char s[200];
void bandwidth()
{
int c(0);
for(int i=0; i
{
if(c
}
for(int i=0; i
}
void dfs(int l)
{
if(l>=count)
{
bandwidth();
return;
}
for(int i=0; i<=max; i++)
if(flag[i])
{
flag[i]=0;
score[l]=i;
dfs(l+1);
flag[i]=1;
}
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("a.txt","r",stdin);
#endif
while(gets(s))
{
memset(num,0,sizeof(num));
memset(flag,0,sizeof(flag));
count=max=0;
sum=27;
len=strlen(s);
int temp=len;
for(int i=0; i
{
flag[s[i]-'A']=1;
int k=i+1,j;
for(; k
else if(s[j]==';')
{
temp=j;
break;
}
if(j==len) temp=len;
}
else if(s[i]==':') i=temp;
for(int i=0; i<26; i++)
if(flag[i])
{
count++;
max=i;
}
for(int i=0; i<=max; i++)
if(flag[i])
{
flag[i]=0;
score[0]=i;
dfs(1);
flag[i]=1;
}
for(int i=0; i
printf("-> %d\n",sum);
}
return 0;
}