Cod sursa(job #1003109)

Utilizator AndreeaBaltaBalta Andreea Cristina AndreeaBalta Data 29 septembrie 2013 19:32:37
Problema Orase Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <cstdio>
#include <algorithm>
int m,n;
 
struct oras{
    int d,l;
} x[50020];
 
bool cmp(oras a, oras b)
{
    return a.d<b.d;
}
 
int main()
{
    freopen("orase.in","r",stdin);
    freopen("orase.out","w",stdout);
 
    scanf("%d%d",&m,&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%d%d",&x[i].d,&x[i].l);
    }
    std::sort(&x[1],&x[n+1],cmp);
    int s1=x[1].l,s2=1;
    for(int i=2;i<=n-1;i++)
    {
        s1+=x[i].d-x[i-1].d;
        if(x[i].l>=s1)
        {
            s1=x[i].l;
            s2=i;
        }
    }
    int d1=x[n].l,d2=n;
    for(int i=n-1; i>s2; i--)
    {
        d1+=x[i+1].d-x[i].d;
        if(x[i].l>=d1)
        {
            d1=x[i].l;
            d2=i;
        }
    }
    printf("%d",x[d1].d-x[s2].d+x[1].l+x[s2].l);
    return 0;
}