Pagini recente » Cod sursa (job #2186295) | Cod sursa (job #1936809) | Cod sursa (job #1759093) | Cod sursa (job #1293534) | Cod sursa (job #470189)
Cod sursa(job #470189)
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <cmath>
using namespace std;
#define file_in "pedefe.in"
#define file_out "pedefe.out"
#define nmax 512
int n,m,l;
int s1[nmax];
int s2[nmax];
int s3[nmax];
int a[nmax][nmax][2];
void citire()
{
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d %d %d", &n, &m, &l);
int i;
for (i=1;i<=n;++i) scanf("%d", &s1[i]);
for (i=1;i<=m;++i) scanf("%d", &s2[i]);
for (i=1;i<=l;++i) scanf("%d", &s3[i]);
}
#define mod 666013
void solve()
{
int i,j,k,p,q,suma,ind;
a[1][1][0]=a[1][1][1]=1;
ind=0;
for (k=1;k<=l;++k, ind^=1)
for (i=1;i<=n;++i)
for (j=1;j<=m;++j)
if (s1[i]==s2[j]==s3[k])
{
for (p=1;p<i;++p)
for (q=1;q<j;++q)
if (s1[p]<=s1[i])
{
a[i][j][ind]+=a[p][q][ind];
if (a[i][j][ind]>=mod)
a[i][j][ind]-=mod;
}
}
else
if (s1[i]==s2[j] && s1[i]!=s3[k])
{
for (p=1;p<i;++p)
for (q=1;q<j;++q)
if (s1[p]<=s1[i])
{
a[i][j][ind]+=a[p][q][ind^1];
if (a[i][j][ind]>=mod)
a[i][j][ind]-=mod;
}
}
suma=0;
for (i=1;i<=n;++i)
for (j=1;j<=m;++j)
{
suma+=a[i][j][ind];
if (a[i][j][ind]>=mod)
a[i][j][ind]-=mod;
}
printf("%d", suma);
}
int main()
{
citire();
solve();
fclose(stdin);
fclose(stdout);
return 0;
}