Pagini recente » Cod sursa (job #230276) | Cod sursa (job #1240023) | Cod sursa (job #1603723) | Cod sursa (job #808181) | Cod sursa (job #60651)
Cod sursa(job #60651)
#include <stdio.h>
#define NMAX 222
#define mod(a) (((a)>=666013) ? ((a)-666013):(a))
int A[NMAX][NMAX][NMAX], S1[NMAX], S2[NMAX], S3[NMAX], N, M, P;
int main()
{
int i, j, k, a, u, t, sol=0;
freopen("pedefe.in", "r", stdin);
scanf("%d %d %d", &N, &M, &P);
for (i = 1; i <= N; i++) scanf("%d", S1+i);
for (i = 1; i <= M; i++) scanf("%d", S2+i);
for (i = 1; i <= P; i++) scanf("%d", S3+i);
for (i = 1; i <= N; i++)
for (j = 1; j <= M; j++)
if (S1[i] == S2[j])
{
A[i][j][0] = 1;
for (k = 1; k <= P; k++)
{
a = 0;
if (S1[i] == S3[k])
{
for (t = 1; t < i; t++)
for (u = 1; u < j; u++)
if (S1[t] <= S1[i]) a = mod(a+A[t][u][k-1]);
a = mod(a+1);
}
else
{
for (t = 1; t < i; t++)
for (u = 1; u < j; u++)
if (S1[t] < S1[i]) a = mod(a+A[t][u][k]);
}
A[i][j][k] = mod(a);
}
sol = mod(A[i][j][P]+sol);
}
freopen("pedefe.out", "w", stdout);
printf("%d\n", sol);
return 0;
}