Cod sursa(job #123220)

Utilizator filipbFilip Cristian Buruiana filipb Data 14 ianuarie 2008 23:01:56
Problema Gardieni Scor Ascuns
Compilator cpp Status done
Runda Marime 0.87 kb
#include <stdio.h>
#include <assert.h>

#define minim(a, b) ((a < b) ? a : b)
#define INF 2000000001
#define TMax 1000005

int N, T, C[TMax], uz[TMax];
long long bst;

int main(void)
{
    int i, j, a, b, c;
    
    freopen("gardieni.in", "r", stdin);
    freopen("gardieni.out", "w", stdout);

    scanf("%d %d", &N, &T);
    assert(1 <= N && N <= 50005);
    assert(1 <= T && T <= 1000000);

    for (i = 1; i <= T; i++)
        C[i] = INF;
    for (i = 1; i <= N; i++)
    {
        scanf("%d %d %d", &a, &b, &c);
        assert(1 <= a && a <= b && b <= T);
        
        for (j = a; j <= b; j++)
        {
            C[j] = minim(C[j], c);
            uz[j]++;
            if (uz[j] > 10)
                for (;;);
        }
    }
    for (i = 1; i <= T; i++)
        bst += C[i];
    
    printf("%lld\n", bst);
    
    return 0;
}