Cod sursa(job #212427)

Utilizator Mishu91Andrei Misarca Mishu91 Data 5 octombrie 2008 14:51:01
Problema Gardieni Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <cstdio>
#include <cctype>
#define MAX_N 50010
#define DIM 8192

struct gard{int li, lf,cost;} V;
int N,T,pz;
long S[1000000],C;
char ax[DIM];

void read(int &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 <= N; ++i)
    {
        read(V.li); read(V.lf); read(V.cost);
        for(int j = V.li; j <= V.lf; j++)
            if(S[j] == 0 || S[j] > V.cost)
                S[j] = V.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();
}