Pagini recente » Cod sursa (job #668020) | Cod sursa (job #1956546) | Cod sursa (job #1851760) | Cod sursa (job #1520095) | Cod sursa (job #783966)
Cod sursa(job #783966)
#include <fstream>
#define DIM 110
#define MOD 666013
using namespace std;
int A[5*DIM], B[5*DIM], C[DIM];
int S[DIM][5*DIM][5*DIM];
int N, M, K, i, j, k, ii, jj, sol;
int main() {
ifstream f("pedefe.in");
ofstream g("pedefe.out");
f>>N>>M>>K;
for (i=1;i<=N;i++)
f>>A[i];
for (i=1;i<=M;i++)
f>>B[i];
for (i=1;i<=K;i++)
f>>C[i];
S[0][0][0] = 1;
for (i=1;i<=N;i++)
for (j=1;j<=M;j++)
if (A[i] == B[j])
for (ii=0;ii<i;ii++)
if (A[ii]<=A[i])
for (jj=0;jj<=j;jj++) {
S[0][i][j] += S[0][ii][jj];
if(S[0][i][j] >= MOD)
S[0][i][j] -= MOD;
}
for (k=1;k<=K;k++) {
for (i=1;i<=N;i++)
for (j=1;j<=M;j++)
if (A[i] == B[j] && A[i] == C[k]) {
// S[k][i][j] = 1;
for (ii = 0; ii<i;ii++)
if (A[ii] <= A[i])
for (jj=0;jj<j;jj++) {
S[k][i][j] += S[k-1][ii][jj];
if (S[k][i][j] >= MOD)
S[k][i][j] -= MOD;
}
} else
if (A[i] == B[j])
//S[k-1][i][j] = 0;
for (ii = 0; ii<i;ii++)
if (A[ii] <= A[i])
for (jj=0;jj<j;jj++) {
S[k-1][i][j] += S[k-1][ii][jj];
if (S[k-1][i][j] >= MOD)
S[k-1][i][j] -= MOD;
}
}
for (i=1;i<=N;i++)
for (j=1;j<=M;j++) {
sol += S[K][i][j];
if (sol >= MOD)
sol -= MOD;
}
g<<sol<<"\n";
return 0;
}