Cod sursa(job #594962)

Utilizator maritimCristian Lambru maritim Data 10 iunie 2011 17:39:18
Problema Schi Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>
#include<malloc.h>

typedef struct _nod
{
	int info;
	struct _nod *d;
} nod;

int N;
int a;

void add(nod*& a,int c)
{
	nod *nou = (nod*)malloc(sizeof(nod));
	nou->info = c;
	nou->d = a->d;
	a->d = nou;
}

int main()
{
	FILE *f = fopen("schi.in","r");
	FILE *g = fopen("schi.out","w");
	
	fscanf(f,"%d ",&N);
	nod *cap = (nod*)malloc(sizeof(nod));
	cap->d = NULL;
	fscanf(f,"%d ",&cap->info);
	for(int i=2;i<=N;i++)
	{
		fscanf(f,"%d ",&a);
		if(a == 1)
		{
			nod *nou = (nod*)malloc(sizeof(nod));
			nou->d = cap;
			nou->info = i;
			cap = nou;
		}
		else
		{
			nod *q = cap;
			for(int j=1;j<a-1;j++,q=q->d);
			add(q,i);
		}
	}
	for(;cap;cap=cap->d)
		fprintf(g,"%d\n",cap->info);
	
	fclose(g);
	fclose(f);
	return 0;
}