Cod sursa(job #1641659)

Utilizator nnnmmmcioltan alex nnnmmm Data 9 martie 2016 09:30:13
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<cstdio>
#include<algorithm>
struct elem
{
 int d,l;
};
bool comp(elem a,elem b)
{
 if(a.d==b.d)
    return a.l>b.l;
 return a.d<b.d;
}
const int NMAX=50007;
elem v[NMAX];
int main()
{
 freopen("orase.in","r",stdin);
 freopen("orase.out","w",stdout);
 int n,m;
 scanf("%d %d ",&m,&n);
 for(int i=1;i<=n;i++)
     {
      scanf("%d %d ",&v[i].d,&v[i].l);
     }
 std::sort(v+1,v+n+1,comp);
 int max=0,dp=v[1].l,poz=v[1].d;
 for(int i=2;i<=n;i++)
     {
      if(dp+v[i].d-poz+v[i].l>max)
         {
          max=dp+v[i].d-poz+v[i].l;
         }
      if(v[i].l>dp+v[i].d-poz)
         dp=v[i].l,poz=v[i].d;
     }
 printf("%d\n",max);
 return 0;
}