Cod sursa(job #9462)

Utilizator paula_11Vicovan Paula paula_11 Data 27 ianuarie 2007 15:38:01
Problema Secventa 5 Scor 0
Compilator cpp Status done
Runda Unirea 2007, clasele 11-12 Marime 0.92 kb
#include <fstream>

using namespace std;

void read();
void back(int k);
void write();

int n, p, x[20000], l, u, contor, h, sel[200000], a[200000], s[20000];

int main()
{
    read();
    for( p = n; p >= l; p--)
        back(1);
    write();
    return 0;
}

void read()
{
    ifstream fin("secv5.in");
    fin >> n >> l >> u;
    for(int i = 1; i <= n; i++) fin >> a[i];
    fin.close();
}

void back(int k)
{
    for(int i = 1; i <= n; i++)        
    {
        x[k] = i;
        if(!s[i])
        {
        ++sel[a[i]];
        if(sel[a[i]] > 1) ++h;
        if(k == p && l <= h && h <= u) contor++;
        }
        else 
        {
            s[i] = 1;
            back(k+1);
            s[i] =0;
            sel[a[i]]--;
            h = 0;
        }
    }
}

void write()
{
    ofstream fout("secv5.out");
    fout << contor;
    fout.close();
}