Cod sursa(job #1651911)

Utilizator akaprosAna Kapros akapros Data 14 martie 2016 10:35:31
Problema NextSeq Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <bits/stdc++.h>
#define maxN 10002
using namespace std;
int n, m, p, len, B[maxN], ans[maxN], v[maxN];
void read()
{
    int i;
    freopen("nextseq.in", "r", stdin);
    scanf("%d %d %d", &n, &m, &p);
    for (i = 1; i <= n; ++ i)
        scanf("%d", &v[i]);
}
void sub(int A[])
{
    int i, t = 0;
    for (i = A[0]; i >= 1; -- i)
        {
            A[i] = A[i] - t;
            t = A[i] < 0;
            if (A[i] < 0)
                A[i] += n;
        }
}
void solve()
{
    int i, x;
    len = p;
    sort(v + 1, v + n + 1);
    for (i = 1; i <= n; ++ i)
        B[v[i]] = i;
    for (i = 1; i <= m; ++ i)
    {
        scanf("%d", &x);
        ans[len + i - m] = -B[x];
    }

    for (i = 1; i <= p; ++ i)
    {
        scanf("%d", &x);
        ans[len + i - p] += B[x];
    }ans[0] = len;
    -- ans[len];
    sub(ans);
}
void write()
{
    int i, sol = 0;
    freopen("nextseq.out", "w", stdout);
    for (i = 1; i <= ans[0]; ++ i)
        sol = sol * n + ans[i];
    printf("%d", sol);
}
int main()
{
    read();
    solve();
    write();
    return 0;
}