Cod sursa(job #1018978)

Utilizator ZanarokStefan Mocanu Zanarok Data 30 octombrie 2013 11:44:08
Problema Secventa 5 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.31 kb
#include <iostream>
#include <cstdio>
#include <tr1/unordered_set>
#include <vector>
using namespace std;
using namespace std::tr1;

unordered_set<int> hesh;
vector <int> vec;
int n,mi,ma,rasp;

void bec(int a, int nr)
{
    if(a<n-1)
    {
        unordered_set<int>::iterator got;
        got=hesh.find(vec[a]);
        if(got==hesh.end())
        {
            if(nr<ma)
            {
                hesh.insert(vec[a]);
                nr++;
                if(nr>=mi)
                    {
                        rasp++;
                        cout<<"sir gasit cu "<<nr<<" elemente la pozitia "<<a+1<<endl;
                    }
                bec(a+1,nr);
                hesh.erase(vec[a]);
                nr--;
                bec(a+1,nr);
            }
        }
        else
        {
            if(nr>=mi && nr<=ma)
            {
                rasp++;
                cout<<"sir gasit cu "<<nr<<" elemente la pozitia "<<a+1<<endl;
            }
            bec(a+1,nr);
        }
    }
}

int main()
{
    freopen("secv5.in","r",stdin);
    freopen("secv5.out","w",stdout);
    scanf("%d %d %d",&n,&mi,&ma);
    int a;
    for(int k=1;k<=n;k++)
    {
        scanf("%d",&a);
        vec.push_back(a);
    }
    bec(0,0);
    cout<<rasp<<endl;
    return 0;
}