Pagini recente » Cod sursa (job #933212) | Cod sursa (job #2896672) | Cod sursa (job #141897) | Cod sursa (job #2049697) | Cod sursa (job #1821112)
#include <bits/stdc++.h>
#define maxN 505
#define MOD 666013
using namespace std;
int n,m,k,i,j,p,line,sol,q;
int cnt[maxN];
int s1[maxN],s2[maxN],s3[maxN];
int dp[2][maxN][maxN],sp[2][maxN][maxN];
int main()
{
freopen("pedefe.in","r",stdin);
freopen("pedefe.out","w",stdout);
scanf("%d %d %d",&n,&m,&k);
for(i=1;i<=n;i++)
scanf("%d",&s1[i]);
for(i=1;i<=m;i++)
scanf("%d",&s2[i]);
for(i=1;i<=k;i++)
scanf("%d",&s3[i]);
dp[0][0][0]=1;
for(p=0,line=0;p<=k;p++,line=1-line)
for(i=0;i<=n;i++)
for(j=0;j<=m;j++)
{
if(p>0)
dp[line][i][j]=sp[line][i][j]=0;
if(s1[i]==s2[j])
for(q=0;q<i;q++)
if(s1[q]<=s1[i])
if(s1[i]!=s3[p])
dp[line][i][j]=(dp[line][i][j]+sp[line][q][j-1])%MOD;
else dp[line][i][j]=(dp[line][i][j]+sp[1-line][q][j-1])%MOD;
if(j>0)
sp[line][i][j]=(sp[line][i][j-1]+dp[line][i][j])%MOD;
else sp[line][i][j]=dp[line][i][j];
}
for(i=0;i<=n;i++)
for(j=0;j<=m;j++)
sol=(sol+dp[1-line][i][j])%MOD;
printf("%d",sol);
return 0;
}