Cod sursa(job #23520)

Utilizator poepiPoenaru Iulian poepi Data 28 februarie 2007 23:44:57
Problema Stramosi Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 1.04 kb
#include<stdio.h>
typedef struct nod
{
	long inf;
	nod *urm,*prec;
}lsi;
lsi *prim,*ultim,*q;
long n,m;
FILE *f=fopen("stramosi.in","r");
void citire()
{
	long i;
	
	fscanf(f,"%ld %ld",&n,&m);
	prim=ultim=0;
	if(!prim)
	{
		prim=new lsi;
		fscanf(f,"%ld",&prim->inf);
		ultim=prim;
		prim->urm=0;
		prim->prec=0;
	}

	
	for(i=2;i<=n;i++)
	{
		q=new lsi;
		fscanf(f,"%ld",&q->inf);
		q->urm=0;
		q->prec=ultim;
		ultim->urm=q;
		ultim=q;
	}
	
}
int cond()
{
	long p,t,i,o,j;
	fscanf(f,"%ld %ld",&p,&t);
	
	for(i=1;i<=p;i++)
		if(i==1)
			q=prim;
		else
			q=q->urm;
	for(j=1;j<t;j++)
	{
	o=q->inf;
	if(o<p&&o!=0)
	{for(i=p;i>o;i--)
			q=q->prec;
	}
	else
		if(o>p&&o!=0)
		{for(i=p;i<o;i++)
				q=q->urm;
		}
		else
				return 0;

	}
	return q->inf;
}
void af()
{
	q=prim;
	while(q)
	{
		printf("%ld ",q->inf);
		q=q->urm;
	}
}
int main()
{
	long i;
	citire();
	FILE *g=fopen("stramosi.out","w");
	for(i=1;i<=m;i++)
		fprintf(g,"%ld\n",cond());
	fclose(f);
	fclose(g);
	return 0;
}