Pagini recente » Cod sursa (job #2415461) | Cod sursa (job #244847) | Cod sursa (job #1886481) | Cod sursa (job #2089848) | Cod sursa (job #155436)
Cod sursa(job #155436)
#include<fstream>
#define Max 3000
using namespace std;
ifstream fin("adn.in");
ofstream fout("adn.out");
char a[10*Max],b[Max];
int n,c[Max][Max];
void sir(char a[Max],char b[Max])
{
int i,j,k,max = 0;
//fout<<a<<"\n";
for(i = 0; i < strlen(b); i++)
{
for(j = 0; j < strlen(a); j++)
if(b[i] == a[j])
{
c[i][j] = 1;
for(k = 0; k < strlen(a)-j; k++)
if(b[i+k] == a[j+k])
c[i][j+k] = c[i][j+k-1] + 1;
else
{
c[i][j+k] = 0;
break;
}
j = j+k;
}
}
for(i = 0; i < strlen(b); i++)
{
for(j = 0; j < strlen(a); j++)
{
if(c[i][j] > max)
{
max = c[i][j];
k = j;
}
c[i][j] = 0;
}
}
// fout<<j-max<<"\n";
strcpy(b,b+max);
strcat(a,b);
}
void read()
{
int i;
fin>>n;
fin>>a;
for(i = 2; i <= n; i++)
{
fin>>b;
sir(a,b);
}
fin.close();
}
int main(void)
{
read();
fout<<a<<"\n";
fout.close();
}