记录编号 |
37505 |
评测结果 |
AAAAAAAAAA |
题目名称 |
字符串子串 |
最终得分 |
100 |
用户昵称 |
QhelDIV |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.036 s |
提交时间 |
2012-03-30 22:04:35 |
内存使用 |
0.31 MiB |
显示代码纯文本
#include <fstream>
#include <cstdlib>
#include <string>
using namespace std;
ifstream fin("substring.in");
ofstream fout("substring.out");
string S0,S1,Max;bool flag[10000];
class Node
{
public:
string st;
}S[10000];
int N,L1,L2,L;
void Initialize()
{
int i;
fin>>N;
for(i=1;i<=N;i++)fin>>S[i].st;
}
void DFS(int Pos)
{
int i;string SDF;
if(Pos==N)
{
L1=S1.length();L2=Max.length();L=min(L1,L2);
for(i=0;i<L;i++)
{
if(S1[i]<Max[i]) {Max=S1;return;}
if(S1[i]>Max[i]) return;
}
if(L1>L2) {Max=S1;return;}
else return;
}
for(i=1;i<=N;i++)
if(!flag[i])
{
flag[i]=true;
SDF=S1;
S1+=S[i].st;
DFS(Pos+1);
flag[i]=false;
S1=SDF;
}
}
int main()
{
Initialize();
DFS(0);
fout<<Max<<endl;
fin.close();fout.close();return 0;
}