Cod sursa(job #1205998)

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

using namespace std;
#define MAX 100005
struct interval
{
    int st, dr;
}v[MAX];
bool comp(interval a, interval b)
{
    return a.st < b.st;
}
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(R >= v[i].dr)
            continue;
        if(L == v[i].st)
        {
            sol += v[i].dr-L;
            R = v[i].dr;
            continue;
        }
        if(R <= v[i].st)
        {
            sol+= v[i].dr-v[i].st;
            L=R;
            R=v[i].dr;
            continue;
        }
    }
    printf("%d",sol);
    return 0;
}