Cod sursa(job #1205996)

Utilizator RathebaSerbanescu Andrei Victor Ratheba Data 8 iulie 2014 17:10:57
Problema Heavy metal Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <cstdio>
#include <algorithm>

using namespace std;
#define MAX 100005
struct interval
{
    int st, dr;
}v[MAX];
bool comp(interval a, interval b)
{
    if(a.dr == b.dr)
        return a.st>b.st;
    return a.dr > b.dr;
}
int main()
{
    freopen("heavymetal.in","r",stdin);
    freopen("heavymetal.out","w",stdout);
    int n, i, R, sol=0, L;
    scanf("%d",&n);
    for(i=1; i<=n; i++)
        scanf("%d%d",&v[i].st,&v[i].dr);
    sort(v+1,v+n+1,comp);
    R=v[1].dr; L=v[1].st;
    sol = v[1].dr-v[1].st;
    for(i=2; i<=n; i++)
    {
        if(L >= v[i].dr)
        {
            sol += v[i].dr-v[i].st;
            L = v[i].st;
        }
    }
    printf("%d",sol);
    return 0;
}