Cod sursa(job #137538)

Utilizator slayer4uVictor Popescu slayer4u Data 17 februarie 2008 12:36:08
Problema Stalpi Scor 0
Compilator cpp Status done
Runda preONI 2008, Runda 4, Clasa a 10-a Marime 0.84 kb
#include <stdio.h>
#include <algorithm>
using namespace std;

long n, i, j, minim, cost, jminim, max;
char v[10000000];

struct lol
{
	long poz, c, s, d;
};
lol x[10010];

int cmpf(lol a, lol b)
{
	return a.poz < b.poz;
}

int main()
{
	freopen ("stalpi.in", "rt", stdin);
	freopen ("stalpi.out", "wt", stdout);

	scanf("%ld", &n);
	for (i = 1; i <= n; i ++)
	{
		scanf("%ld %ld %ld %ld", &x[i].poz, &x[i].c, &x[i].s, &x[i].d);
	}

	sort(x + 1, x + n + 1, cmpf);

	for (i = 1; i <= n; i ++)
	{
		if (!v[x[i].poz])
		{
			minim = 2147000000;
			for (j = i; j <= n; j ++)
				if (x[i].poz >= x[j].s && x[i].poz <= x[j].d)
					if (minim > x[j].c)
						minim = x[j].c, jminim = j;
			for (j = x[jminim].s; j <= x[jminim].d; j ++)
				v[j] = 1;
			cost += x[jminim].c;
		}
	}

	printf("%ld\n", cost);
	return 0;
}