Cod sursa(job #423482)

Utilizator 2fastGherghina Alexandru 2fast Data 23 martie 2010 22:13:56
Problema Gutui Scor 10
Compilator cpp Status done
Runda teme_upb Marime 1.05 kb
#include <fstream>
#include <iostream>
#include <stdlib.h>
using namespace std;
typedef struct nod
{
	unsigned int g,nr;
	nod *next;
}nod;
	ifstream f("gutui.in");
	ofstream g("gutui.out");
nod *r;
unsigned int n,h,u,l,gr,m,nr;
void insert()
{
	unsigned int i;
	nod *p,*q,*e;
	r=new nod;
	r->next=0;
	for(i=0;i<n;i++)
	{
		f>>l>>gr;
		nr=(h-l)/u+1;
		q=r;
		p=r->next;
		int ok=0;
		while(p!=0)
		{
			if(p->nr>nr || (p->nr==nr && p->g<gr))
			{
				e=new nod;
				e->nr=nr;
				e->g=gr;
				e->next=p;
				q->next=e;
				ok=1;
				break;
			}
			q=p;
			p=p->next;
		}
		if(!ok)
		{
			p=new nod;
			p->nr=nr;
			p->g=gr;
			p->next=0;
			q->next=p;
		}
	}
	/*
	p=r->next;
	while(p!=0)
	{
		cout<<p->g<<" ";
		p=p->next;
	}
	system("pause");*/
}

void parcurg()
{
	nr=1;
	nod *p=r->next;
	while(p!=0)
	{
		if(p->nr>=nr)
		{
			m+=p->g;
			nr++;
		}
		p=p->next;
	}
	g<<m<<endl;
}

int main()
{
	int i,j;
	f>>n;
	f>>h>>u;
	insert();
	parcurg();
	f.close();
	g.close();
	return 0;
}