Pagini recente » Cod sursa (job #2836780) | Cod sursa (job #2836951) | Cod sursa (job #1142935) | Cod sursa (job #2099754) | Cod sursa (job #2024913)
#include <cstdio>
#include <algorithm>
using namespace std;
int v[10001], X[10001], A[10001], B[10001], n, m, p;
void sub(int A[], int B[]){
int t = 0;
for(int i = 1; i <= A[0]; i++) {
A[i] -= ((i <= B[0]) ? B[i] : 0) + t;
A[i] += (t = A[i] < 0) * n;
}
for (; A[0] > 1 && !A[A[0]]; A[0]--);
}
int main(){
freopen("nextseq.in", "r", stdin);
freopen("nextseq.out", "w", stdout);
scanf("%d %d %d ", &n, &m, &p);
for(int i = 1; i <= n; ++i)
scanf("%d ", &v[i]);
sort(v + 1, v + n + 1);
for(int i = 1; i <= n; ++i)
X[v[i]] = i;
for(int i = m; i > 0; --i){
int x;
scanf("%d ", &x);
A[i] = X[x];
}
A[0] = m;
for(int i = p; i > 0; --i){
int x;
scanf("%d ", &x);
B[i] = X[x];
}
B[0] = p;
sub(B, A);
int res = 0, power = 1;
for(int i = 1; i <= B[0]; ++i) {
res = res + B[i] * power;
power *= n;
}
printf ("%d\n", res - 1);
}