Cod sursa(job #137715)

Utilizator butyGeorge Butnaru buty Data 17 februarie 2008 12:59:03
Problema Stalpi Scor 0
Compilator cpp Status done
Runda preONI 2008, Runda 4, Clasele 11-12 Marime 1.54 kb
#include<stdio.h>
struct stalp
{
	int x,c,s,d;
};
struct lista
{
	int inf;
	lista *urm;
};
const int Nmax=1000; //// !!!!
int N,gri[Nmax],gre[Nmax];
stalp S[Nmax];
lista *G[Nmax];
void cit()
{
	int i;
	freopen("stalpi.in","r",stdin);
	scanf("%d",&N);
	for(i=1;i<=N;i++)
		scanf("%d%d%d%d",&S[i].x,&S[i].c,&S[i].s,&S[i].d);
}
int etc(int i,int j)
{
	int i0=0,j0=-1,aux;
	stalp a;
	while(i!=j)
	{
		if(S[i].x>S[j].x)
		{
			a=S[i];
			S[i]=S[j];
			S[j]=a;
			aux=-i0;
			i0=-j0;
			j0=aux;
		}
		i+=i0;
		j+=j0;
	}
	return i;
}
void qsort(int li,int ls)
{
	if(li<ls)
	{
		int k=etc(li,ls);
		qsort(li,k-1);
		qsort(k+1,ls);
	}
}
void rez()
{
	int i,j;
	lista *C[Nmax];
	qsort(1,N);
/*	for(i=1;i<=N;i++)
	{
		G[i]=new lista;
		C[i]=G[i];
		for(j=i-1;j>=1;j--)
			if(S[i].x-S[i].s<=S[j].x)
			{
				C[i]->urm=new lista;
				C[i]=C[i]->urm;
				C[i]->inf=j;
				C[i]->urm=NULL;
				gri[j]++;
				gre[i]++;
				A[j]=i;
			}
		for(j=i+1;j<=N;j++)
			if(S[i].x+S[i].d>=S[j].x)
			{
				C[i]->urm=new lista;
				C[i]=C[i]->urm;
				C[i]->inf=j;
				C[i]->urm=NULL;
				gri[j]++;
				gre[i]++;
				A[j]=i;
			}
	}
	int ok;
	for(i=1;i<=N;i++)
		if(gri[i]==1)
			In[A[i]]=i;
	for(i=1;i<=N;i++)
		if(gri[i]>=2)
		{
			ok=0;

			for(c=G[i]->urm;c;c=c->urm)
				if(In[c->inf]==0&&min>)

			if(ok)
			for(c=G[i]->urm;c;c=c->urm)
				if(/*
					   */
}
void scr()
{
	freopen("stalpi.out","w",stdout);
	printf("4\n");
	fclose(stdout);
}
int main()
{
	cit();
	rez();
	scr();
	return 0;
}