Cod sursa(job #1972151)

Utilizator cyg_vladioanBirsan Vlad cyg_vladioan Data 22 aprilie 2017 10:50:28
Problema Heavy metal Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <cstdio>
#include <algorithm>
using namespace std;
struct heavymetal
{
    int x , y;
};
heavymetal s[100005];
int cmp (heavymetal a , heavymetal b)
{
    if(a.x == b.x)
        return a.y < b.y;
    return a.x < b.x;
}
int main()
{
    freopen("heavymetal.in" , "r" , stdin);
    freopen("heavymetal.out" , "w" , stdout);
    int n , i , l , r;
    long long nr;
    scanf("%d" , &n);
    for(i = 1 ; i <= n ; i ++)
        scanf("%d%d" , &s[i].x , &s[i].y);
    sort(s + 1 , s + n + 1 , cmp);
    l = s[1].x;
    r = s[1].y;
    nr = r - l; 
    for(i = 2 ; i <= n ; i ++)
    {
        if(r <= s[i].x)
        {
            nr = nr + s[i].y - s[i].x;
            r = s[i].y;
            l = s[i].x;
        }
        else
        {
            if(r - l < s[i].y - s[i].x)
            {
                nr = nr - (r - l);
                nr = nr + s[i].y - s[i].x;
                r = s[i].y;
                l = s[i].x;
            }
        }
    }
    printf("%lld\n" , nr);
    return 0;
}