Cod sursa(job #2236875)

Utilizator lucametehauDart Monkey lucametehau Data 30 august 2018 21:13:15
Problema NextSeq Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#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;
    } else
      t = 0;
  }
  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;
}