Pagini recente » Cod sursa (job #2644547) | Cod sursa (job #858818) | Cod sursa (job #2377836) | Cod sursa (job #3168459) | Cod sursa (job #1411397)
#include <fstream>
using namespace std;
ifstream fin("culori.in");
ofstream fout("culori.out");
const int MOD = 9901;
int N;
int V[2 * 256 + 5];
int dp[2 * 256 + 5][2 * 256 + 5];
int main()
{
fin >> N;
for (int i = 1; i <= 2 * N - 1; ++i)
{
fin >> V[i];
dp[i][i] = 1;
}
for(int l = 1; l <= 2 * N - 1; ++l)
for (int j = l + 1; j <= 2 * N - 1; ++j)
{
int i = j - l; // iau de la mici la mari
if (V[i] != V[j] || ((j - i + 1) % 2 == 0))
continue;
for (int k = i + 1; k <= j - 1; ++k)
{
if (V[i + 1] != V[k] || V[k + 1] != V[j])
continue;
dp[i][j] += dp[i + 1][k] * dp[k + 1][j];
dp[i][j] %= MOD;
}
}
fout << dp[1][2 * N - 1];
fin.close();
fout.close();
return 0;
}