Cod sursa(job #9657)

Utilizator ciprifilipasFilipas Ciprian ciprifilipas Data 27 ianuarie 2007 16:34:12
Problema Secventa 5 Scor 0
Compilator cpp Status done
Runda Unirea 2007, clasele 11-12 Marime 1.08 kb
//secventa 5

#include <fstream>
#include <vector>

using namespace std;

long long int nr;
vector<int> sir;
vector<int> sel;
//int sir[20];
//int sel[20];

void Read();
void Solve();

int l, u, n;

ofstream fout("secv5.out");

int main()
{
    Read();
    Solve();
    fout << nr+1;
    fout.close();
    return 0;
}

void Read()
{
     ifstream fin("secv5.in");
     fin >> n >> l >> u;
     sir.resize(n+1);
     int maxim = 0;
     for(int i = 1; i <= n; i++)
     {
	      fin >> sir[i];
	      if(sir[i] > maxim) maxim = sir[i];
     }
     sel.resize(maxim+1);
     fin.close();
}

void Solve()
{
    int elemdist = 0;

    for(int k = l; k <= u; k++)
    {
	for(int i = 1; i <= n; i++)
	{
		sel[sir[i]] = true;
		//sel[sir[i]] = 1;
		elemdist++;
		for(int j = i; j <= n; j++)
		{
			if(elemdist < k && sel[sir[j]] == false)
			{
				sel[sir[j]] = true;
				elemdist++;
			}
			if(elemdist == k && j < n) nr++;
		}
		sel.assign(sizeof(sel), false);
		/*for(int r = 1; r <= 20; r++)
			sel[r] = 0;*/
		elemdist = 0;
	}
    }
}