// by BNU_LZM
#include<cstdio>
#include<cmath>
#include<vector>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn = 10;
vector<int> u, v;
int id[256], letter[100];
int main()
{
char s[100];
scanf("%s", s);
int n = 0;
int p = 0, q = 0, len = strlen(s);
for(char ch = 'A'; ch <= 'Z'; ch++)
{
if(strchr(s, ch) != NULL)
{
id[ch] = n;
letter[n] = ch;
n++;
}
}
for(;;)
{
while(p < len && s[p] != ':') p++;
if(p == len) break;
while(q < len && s[q] != ';') q++;
for(int i = p+1; i < q; i++)
{
u.push_back(id[s[p-1]]);
v.push_back(id[s[i]]);
}
p++; q++;
}
int ans = n+1, p[maxn], pos[maxn], bestp[maxn];
for(int i = 0; i < n; i++) p[i] = i;
do
{
for(int i = 0; i < n; i++) pos[p[i]] = i;
int cnt = 0;
for(int i = 0; i < u.size(); i++)
{
cnt = max(cnt, abs(pos[u[i]]-pos[v[i]]));
}
if(ans > cnt)
{
ans = cnt;
memcpy(bestp, p, sizeof(p));
}
}while(p, p+n)
printf("%d\n", ans);
for(int i = 0; i < n; i++) printf("%c", letter[bestp[i]]);
return 0;
}
带宽
最新推荐文章于 2025-03-21 12:20:02 发布