Cod sursa(job #796989)

Utilizator CS-meStanca Marian Ciprian CS-me Data 13 octombrie 2012 09:31:17
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
FILE *fin=fopen("orase.in","r");
FILE *fout=fopen("orase.out","w");

struct strada{
	int d, l;
};
strada v[50010];


int cmp(strada a, strada b){
	if(a.d == b.d){
		return a.l<b.l;
	}
	return a.d<b.d;
}
int n,m;

int main(){
	
	fscanf(fin,"%d %d",&m,&n);
	
	for(int i = 1; i<=n; i++){
		fscanf(fin,"%d %d",&v[i].d, &v[i].l);
	}
	sort(v+1, v+n+1, cmp);
	int dm=0;
	int sol=0;
	
	
	for(int i = 1 ;i<=n ; i++){
		dm+=( v[i].d - v[i-1].d );
		
		if( dm+v[i].l > sol ){
			sol = dm+v[i].l;
		}
		
		if(v[i].l > dm){
			dm = v[i].l;
		}
	}
	
	fprintf(fout,"%d",sol);
	
	return 0;
}