Cod sursa(job #1003111)

Utilizator AndreeaBaltaBalta Andreea Cristina AndreeaBalta Data 29 septembrie 2013 19:36:17
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 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 st=x[1].l,sus=1;
    for(int i=2;i<=n-1;i++)
    {
        st+=x[i].d-x[i-1].d;
        if(x[i].l>=st)
        {
            st=x[i].l;
            sus=i;
        }
    }
    int jr=x[n].l,jos=n;
    for(int i=n-1; i>sus; i--)
    {
        jr+=x[i+1].d-x[i].d;
        if(x[i].l>=jr)
        {
            jr=x[i].l;
            jos=i;
        }
    }
    printf("%d",x[jos].d-x[sus].d+x[jos].l+x[sus].l);
    return 0;
}