Cod sursa(job #384791)

Utilizator Bogdan_CCebere Bogdan Bogdan_C Data 20 ianuarie 2010 22:56:57
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<stdio.h>
#include<stdlib.h>
#include<algorithm>
#define FIN "orase.in"
#define FOUT "orase.out"
#define NMAX 50004
#define f first
#define s second
using namespace std;
pair<int,int> dist[NMAX];
int mx[NMAX];
int sort_comp(pair<int,int>a,pair<int,int>b)
 {return (a.f<b.f);}
int main()
{freopen(FIN,"r",stdin);
freopen(FOUT,"w",stdout);
int n,m;
scanf("%d %d",&m,&n);
for(int i=0;i<n;i++)
 scanf("%d %d",&dist[i].f,&dist[i].s);
sort(dist,dist+n);
//l[j]-d[j]
mx[0]=dist[0].s-dist[0].f;
for(int i=1;i<n;i++)
  if((dist[i].s-dist[i].f)>mx[i-1]) mx[i]=dist[i].s-dist[i].f;
  else mx[i]=mx[i-1];
long long maxim=0;
for(int i=0;i<n;i++)
 if(maxim<(long long)(dist[i].f+dist[i].s+mx[i])) maxim=(long long)dist[i].f+(long long)dist[i].s+(long long)mx[i];
printf("%lld",maxim); 
 return 0;}