Pagini recente » Cod sursa (job #2701520) | Cod sursa (job #2828884) | Cod sursa (job #907237) | Cod sursa (job #2210676) | Cod sursa (job #2518631)
#include <fstream>
#include <iostream>
#include <string.h>
using namespace std;
ifstream fin("stiva.in");
ofstream fout("stiva.out");
size_t dp[501][501];
char sir[501];
int main()
{
fin>>(sir + 1);
size_t n = strlen(sir + 1);
for(size_t i = 1; i <= n; i++) dp[i][i] = 1;
for(size_t l = 2; l <= n; l++)
{
for(size_t i = 1; i <= n - l + 1; i++)
{
size_t j = i + l - 1;
dp[i][j] = dp[i][j - 1] + 1;
cout << dp[i][j] << endl;
for(size_t k = i; k < j; k++)
{
if(sir[k] == sir[j])
{
dp[i][j] = min(dp[i][j], dp[i][k] + dp[k + 1][j - 1]);
cout << dp[i][j];
}
}
}
}
fout<< 2*dp[1][n] + n;
}