Pagini recente » Cod sursa (job #2283058) | Cod sursa (job #2328868) | Cod sursa (job #2597551) | Cod sursa (job #1764693) | Cod sursa (job #935445)
Cod sursa(job #935445)
#include <stdio.h>
#include <algorithm>
using namespace std;
const int N_MAX = 10010;
int X[N_MAX], A[N_MAX], B[N_MAX], poz[N_MAX];
int main()
{
freopen("nextseq.in", "r", stdin);
freopen("nextseq.out", "w", stdout);
int N, M, P, x, i, j, g;
scanf("%d %d %d\n", &N, &M, &P);
for (i = 1; i <= N; i ++) {
scanf("%d ", &X[i]);
}
sort(X + 1, X + N + 1);
for (i = 1; i <= N; i ++) {
poz[X[i]] = i;
}
for (i = M; i >= 1; i --) {
scanf("%d ", &x);
A[i] = poz[x];
}
for (i = P; i >= 1; i --) {
scanf("%d ", &x);
B[i] = poz[x];
}
sort(X + 1, X + N + 1);
int nr = 0;
while (1) {
for (i = 1; i <= M + 1 && A[i] == N; i ++);
A[i] ++;
if (i == M + 1) {
M ++;
}
for (j = i - 1; j >= 1; j --) {
A[j] = 1;
}
/*for (i = 1; i <= M; i ++) {
printf("%d ", A[i]);
}
printf("\n");*/
g = 1;
if (M == P) {
int dif = 0;
for (i = P; i >= 1; i --) {
if (A[i] != B[i]) {
dif = 1;
if (A[i] < B[i]) {
nr ++;
break;
} else {
g = 0;
break;
}
}
}
if (dif == 0) {
g = 0;
}
} else {
nr ++;
}
if (g == 0) {
break;
}
}
printf("%d\n", nr);
return 0;
}