📄 3192.txt
字号:
Source
Problem Id:3192 User Id:fzk
Memory:64K Time:30MS
Language:C++ Result:Accepted
Source
#include <stdio.h>
#include <algorithm>
#include <string>
#include <string.h>
using namespace std;
int index[7];
char sum[100];
char str[7][10];
int len[7];
int merge( int len, char *w, int l ) {
int i = len-l, j;
if( i<0 ) i = 0;
for( ; i<=len; i++ ) {
for( j=0; sum[i+j] && w[j] == sum[i+j]; j++ )
;
if( sum[i+j] == 0 ) {
for( ;j<l; j++ )
sum[i+j] = w[j];
return i+l;
}
}
return -1; // never execute
}
int main( ) {
int n, i, l, ans = 1000;
scanf( "%d", &n );
for( i=0; i<n; i++ ) {
scanf( "%s", str[i] );
len[i] = strlen( str[i] );
index[i] = i;
}
do {
l = 0;
for( i=0; i<n; i++ ) {
sum[l] = '\0';
l = merge( l, str[ index[i] ], len[ index[i] ] );
}
if( l < ans )
ans = l;
}while( std::next_permutation( index, index+n ) );
printf( "%d\n", ans );
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -