Cod sursa(job #212432)

Utilizator Mishu91Andrei Misarca Mishu91 Data 5 octombrie 2008 15:03:29
Problema Gardieni Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <cstdio>
#include <cctype>

#define MAX_N 50010
#define MAX_T 1000007
#define DIM 8192
const int INF = 0x3f3f3f3f;

long li, lf;
long N, pz;
long T,cost;
long S[MAX_T];
long long C;
char ax[DIM];

void read(long &x)
{
    x = 0;
    while(!isdigit(ax[pz]))
        if(++pz == DIM)
            fread(ax, sizeof (char), DIM, stdin), pz = 0;
    while(isdigit(ax[pz]))
    {
        x = x*10 + (ax[pz] - '0');
        if(++pz == DIM)
            fread(ax, sizeof (char), DIM, stdin), pz = 0;
    }
}

void solve()
{
    read(N);
    read(T);

    for(int i = 1; i <= T; ++i)
        S[i] = INF;

    for(int i = 1; i <= N; ++i)
    {
        read(li); read(lf); read(cost);
        for(int j = li; j <= lf; j++)
            if(S[j] > cost)
                S[j] = cost;
    }
    for(int i = 1; i <= T; i++)
        C += S[i];
    printf("%ld\n",C);
}

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