Cod sursa(job #9568)

Utilizator st-masterDan Stelian st-master Data 27 ianuarie 2007 16:12:44
Problema Secventa 5 Scor 0
Compilator cpp Status done
Runda Unirea 2007, clasele 11-12 Marime 0.97 kb
#include <fstream.h>
#include <conio.h>
#include <math.h>

unsigned long i,j,n,l,u,count;
typedef struct {unsigned long v;}HUGE;
HUGE *sir = new HUGE[1048580];
char *aux = new char[1048580];

void citire() {
	fstream in("secv5.in",ios::in);
	in>>n>>l>>u;
	for(i=0;i<n;i++)
		in>>sir[i].v;
	in.close();
}

unsigned long distincte(unsigned long start, unsigned long end)
{
 unsigned long k,p,dis=0;
 int dup;
	for(k=start;k<=end;k++)
		aux[k]=0;

	for(k=start;k<=end;k++){
	 dup=0;
	 if(aux[k]!=1){
		for(p=start;p<=end;p++)
			if(k!=p && sir[k].v==sir[p].v){
				dup=1;
				aux[p]=1;
				aux[k]=1;
				dis++;
			}
	 }else dup=1;
	 if(dup==0)dis++;
	}
 return dis;
}

void main(){
	unsigned long nr_dis;
	citire();
	for(i=0;i<n-l+1;i++){
		for(j=i+l-1;j<=n-l+1;j++){
			nr_dis = distincte(i,j);
			cout<<i<<" "<<j<<" "<<nr_dis<<"\n";
			if(nr_dis>=l && nr_dis<=u)count++;
		}
	}
	fstream out("secv5.out",ios::out);
	out<<count;
	out.close();
}