Pagini recente » Cod sursa (job #470351) | Cod sursa (job #1052970) | Cod sursa (job #2807105) | Cod sursa (job #853706) | Cod sursa (job #861102)
Cod sursa(job #861102)
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
const int NMAX = 10005;
const int MMAX = 10005;
const int PMAX = 10005;
const int VALMAX = 10005;
int N, M, P, REZ;
int X[NMAX], A[MMAX], B[PMAX], norm[VALMAX];
void normalizare()
{
int c[NMAX];
copy(X + 1, X + N + 1, c + 1);
sort(c + 1, c + N + 1);
for(int i = 1 ; i <= N ; i++)
norm[c[i]] = i;
}
void citire()
{
cin >> N >> M >> P;
for(int i = 1 ; i <= N ; i++)
scanf("%d", &X[i]);
normalizare();
int k;
//fill(A + 1, A + MMAX + 1, -1);
//fill(B + 1, B + PMAX + 1, -1);
for(int i = M ; i ; i--)
{
scanf("%d", &k);
A[i] = norm[k];
}
for(int i = P ; i ; i--)
{
scanf("%d", &k);
B[i] = norm[k];
}
}
void adauga(int poz)
{
A[poz]++;
if(A[poz] == N + 1)
{
A[poz] = 1;
adauga(poz + 1);
}
}
void scrie()
{
printf("%d\n", REZ - 1);
}
int main()
{
freopen("nextseq.in", "r", stdin);
freopen("nextseq.out", "w", stdout);
citire();
for(; !equal(B + 1, B + P + 1, A + 1) ;)
{
adauga(1);
REZ++;
}
scrie();
return 0;
}