Pagini recente » Cod sursa (job #2252114) | Cod sursa (job #2334570) | Cod sursa (job #1719120) | Cod sursa (job #2425490) | Cod sursa (job #998433)
Cod sursa(job #998433)
#include <cstdio>
#include <cstdlib>
#include <algorithm>
using namespace std;
const int NMAX = 10010;
int A[NMAX], B[NMAX], X[NMAX], C[NMAX], N, M, P, Ans;
bool Equal(int A[NMAX], int B[NMAX])
{
if(A[0] != B[0]) return 0;
for(int i = 1; i <= A[0]; ++ i)
if(A[i] != B[i])
return 0;
return 1;
}
int main()
{
freopen("nextseq.in", "r", stdin);
freopen("nextseq.out", "w", stdout);
scanf("%i %i %i", &N, &M, &P);
for(int i = 1; i <= N; ++ i) scanf("%i", &X[i]);
sort(X + 1, X + N + 1);
for(int i = 1; i <= N; ++ i) C[X[i]] = i;
for(int i = M; i > 0; -- i)
scanf("%i", &A[i]), A[i] = C[A[i]];
for(int i = P; i > 0; -- i)
scanf("%i", &B[i]), B[i] = C[B[i]];
A[0] = M;
B[0] = P;
while(!Equal(A, B))
{
A[1] ++;
for(int i = 1; i <= A[0]; ++ i)
if(A[i] == N + 1)
{
A[i + 1] ++;
A[i] = 1;
if(i == A[0]) A[0] ++;
}
Ans ++;
}
printf("%i\n", Ans - 1);
return 0;
}