Cod sursa(job #2663593)

Utilizator Senth30Denis-Florin Cringanu Senth30 Data 26 octombrie 2020 20:39:50
Problema NextSeq Scor 85
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <bits/stdc++.h>
#define MAX 131072
#define MOD 1000000007

using namespace std;
const int NMAX = 10005;

int N, M, P, ans;
int v[NMAX], a[NMAX], b[NMAX], srt[NMAX], c[NMAX];

void read(){
    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++)
        srt[v[i]] = i;
    for(int i = 1 + P - M; i <= P; i++)
        scanf("%d", &a[i]);
    for(int i = 1; i <= P; i++)
        scanf("%d", &b[i]);
}

void bkt(int p, bool eqSup, bool eqDow){
    if(p > P){
        ans++;
        return;
    }
    int i = srt[a[p]];
    if(!eqDow)
        i = 1;
    for(; i <= N; i++){
        if(v[i] > b[p] && eqSup) break;
        c[p] = v[i];
        bkt(p + 1, c[p] == b[p] && eqSup, c[p] == a[p] && eqDow);
    }
}

int main(){

    freopen("nextseq.in", "r", stdin);
    freopen("nextseq.out", "w", stdout);

    read();
    bkt(1, true, true);
    ans -= 2;
    ans = max(ans, 0);
    printf("%d", ans);

    return 0;
}