Pagini recente » Cod sursa (job #3222813) | Cod sursa (job #3237474) | Winter Challenge 2008 | Cod sursa (job #431545) | Cod sursa (job #2236874)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin ("nextseq.in");
ofstream cout ("nextseq.out");
const int NMAX = 1e4;
int p, n, m;
int x, put;
int sol;
int ind[1 + NMAX];
int v[1 + NMAX], a[1 + NMAX], b[1 + NMAX];
void sub(int a[], int b[], int c) {
int i, t = 0;
for(i = 1; i <= a[0]; i++) {
a[i] -= t;
if(i <= b[0])
a[i] -= b[i];
if(a[i] < 0) {
t = 1;
a[i] += c;
}
}
for(; a[0] > 1 && a[a[0]] == 0; a[0]--);
}
int main() {
cin >> p >> n >> m;
for(int i = 1; i <= p; i++)
cin >> v[i];
sort(v + 1, v + p + 1);
for(int i = 1; i <= p; i++)
ind[v[i]] = i;
a[0] = n;
for(int i = n; i >= 1; i--) {
cin >> x;
a[i] = ind[x];
}
b[0] = m;
for(int i = m; i >= 1; i--) {
cin >> x;
b[i] = ind[x];
}
sub(b, a, p);
put = 1;
for(int i = 1; i <= b[0]; i++) {
sol += put * b[i];
put *= p;
}
cout << sol - 1;
return 0;
}