Cod sursa(job #155430)

Utilizator georgelRector George georgel Data 11 martie 2008 22:11:12
Problema ADN Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.32 kb
#include<fstream>
#define Max 100

using namespace std;

ifstream fin("adn.in");
ofstream fout("adn.out");
char a[Max],b[Max];
int n,c[Max][Max];
void sir(char a[Max],char b[Max]);
void read()
{
     int i;
     fin>>n;
     fin>>a;
     for(i = 2; i <= n; i++)
     {
           fin>>b;
           sir(a,b);
     }
fin.close();
}
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);
}
int main(void)
{
    read();
    fout<<a<<"\n";
fout.close();
}