Cod sursa(job #127119)

Utilizator DastasIonescu Vlad Dastas Data 23 ianuarie 2008 14:11:50
Problema Gardieni Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <cstdio>

const int maxn = 50010;
const int maxt = 1000001;
const int inf = 1 << 30;

FILE *in = fopen("gardieni.in","r"), *out = fopen("gardieni.out","w");

struct f
{
    int a, b, c;
};

int n, t;
f h[maxn];

int min[maxt];

void read()
{
    fscanf(in, "%d %d", &n, &t);

    for ( int i = 1; i <= n; ++i )
        fscanf(in, "%d %d %d", &h[i].a, &h[i].b, &h[i].c);
}

int main()
{
    read();

    for ( int i = 1; i <= t; ++i )
        min[i] = inf;

    for ( int i = 1; i <= n; ++i )
        for ( int j = h[i].a; j <= h[i].b; ++j )
            if ( h[i].c < min[j] )
                min[j] = h[i].c;

    long long s = 0;
    for ( int i = 1; i <= t; ++i )
        s = (long long)s + min[i];

    fprintf(out, "%lld\n", s);


	return 0;
}