Cod sursa(job #396964)

Utilizator beyond_k7aOnutu Catalin beyond_k7a Data 16 februarie 2010 09:44:44
Problema Secventa 5 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<fstream>
using namespace std;
unsigned long x,y,n,i,j,k,s,nr,da,t,gas;
struct nod{
	nod *urm;
	unsigned long nr;
};
void adaug(nod *prim, nod *ult, unsigned long x)
{
	nod *p;
	p = new nod;
	p->urm = NULL;
	p->nr = x;
	if(prim == NULL)
		prim=p;
	else
		ult->urm=p;
	ult=p;
	
}
int getnrd(nod *prim)
{
	if(prim==NULL)
		return 0;
	nod *p,*q;
	int da=0;
	int nr=0;
	for(p=prim;p!=NULL;p=p->urm)
	{
		for(q=p->urm;q!=NULL;q=q->urm)
		{
			if(q->nr==p->nr)
			{
				da=1;
			}
		}
		if(da)
			nr++;
	}
	return nr;
		
}
int main()
{
	ifstream f("secv5.in");
	ofstream g("secv5.out");
	f>>n>>x>>y;
	nod *prim,*ult;
	prim=ult=NULL;
	nr=0;
	nod *q;
	for(i=1;i<=n;i++)
	{
		f>>t;
		adaug(prim,ult,t);
		nr=getnrd(prim);
		if(nr>=x && nr<=y)
			s++;
		while(nr>y)
		{
			q=prim;
			prim=prim->urm;
			delete(q);	
			nr=getnrd(prim);
		}
		
	}
	
	g<<s;
	
	f.close();
	g.close();
	return 0;
}