Pagini recente » Cod sursa (job #590155) | Cod sursa (job #1115341) | Cod sursa (job #1976257) | Cod sursa (job #1889822) | Cod sursa (job #799155)
Cod sursa(job #799155)
#include <iostream>
#include <stdlib.h>
#include <fstream>
#include <vector>
#include <cmath>
#include <set>
using namespace std;
ifstream fin("subsir.in");
ofstream fout("subsir.out");
set<string> maxSet;
int maxSize[500][500];
int maxTotal;
int main()
{
string s1,s2;
fin >> s1;
fin >> s2;
//cout << endl<<s2<<endl;
for (int i=0;i<s1.size();i++)
for (int j=0;j<s2.size();j++)
{
if (s1[i] == s2[j])
{
if (i>0&&j>0)
{
maxSize[i][j] = max(maxSize[i][j],maxSize[i-1][j-1]+1);
}
else
{
maxSize[i][j] = 1;
}
if (maxTotal <maxSize[i][j])
{
maxTotal = maxSize[i][j];
maxSet.clear();
maxSet.insert(s1.substr(i-maxSize[i][j]+1,maxSize[i][j]));
}
else
if (maxTotal == maxSize[i][j])
{
maxSet.insert(s1.substr(i-maxSize[i][j]+1 , maxSize[i][j]));
}
}
}
fout << maxSet.size();
}