Cod sursa(job #974934)
Utilizator | Data | 18 iulie 2013 19:10:45 | |
---|---|---|---|
Problema | Culori | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.64 kb |
#include<fstream>
#define X 9901
#define Nmax 1000
using namespace std;
ifstream f("culori.in");
ofstream g("culori.out");
int n,v[Nmax],a[Nmax][Nmax];
void init()
{
f>>n; n=2*n-1;
for(int i=1;i<=n;i++)f>>v[i],a[i][i]=1;
}
void Solve()
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(v[i+j]==v[j])
for(int k=j+1;k<=i+j;k++)
{
a[j][i+j]=(a[j][i+j]+a[j+1][k]*a[k+1][i+j]) % X;
//a[j][i+j]%=X;
}
g<<a[1][n]<<'\n';
}
int main()
{
init();
Solve();
f.close();g.close();
return 0;
}