Cod sursa(job #9716)

Utilizator scapryConstantin Berzan scapry Data 27 ianuarie 2007 16:49:28
Problema Secventa 5 Scor 10
Compilator cpp Status done
Runda Unirea 2007, clasele 11-12 Marime 0.78 kb
#include <stdio.h>

enum { maxn = 2 << 19 };

int secv[maxn];
int n, minlen, maxlen;

int main()
{
	int i, j, k, m, now;
	long long int ans = 0ll;
	bool bad;
	FILE *f = fopen("secv5.in", "r");
	if(!f) return 1;
	
	fscanf(f, "%d%d%d", &n, &minlen, &maxlen);
	for(i = 0; i < n; i++) fscanf(f, "%u", &secv[i]);
	
	fclose(f);
	f = fopen("secv5.out", "w");
	if(!f) return 1;
	
	for(i = 0; i < n; i++)					//start
		for(j = i; j < n; j++)			//stop
		{
			now = 0;
			for(k = i; k <= j; k++)
			{
				bad = false;
				for(m = k + 1; m <= j; m++)
				{
					if(m == k) continue;
					if(secv[m] == secv[k])
					{
						bad = true;
						break;
					}
				}
				if(!bad) //first time
					now++;
			}
			
			if(now >= minlen && now <= maxlen) ans++;
		}
	
	fprintf(f, "%lld\n", ans);
	
	fclose(f);
	return 0;
}