Cod sursa(job #68202)

Utilizator ZweisteinAdrian VELICU Zweistein Data 26 iunie 2007 22:15:11
Problema Orase Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <stdio.h>
#include <stdlib.h>
#define NRORASE 50001
struct oras {
	long princ; 
	long lat;
} ora[NRORASE];
int compor (const void * a, const void * b) {
	const oras * x = (oras *)a;
	const oras * y = (oras *)b;
	return (x->princ-y->princ);
};
int main (void) {
      	FILE * fi = fopen("orase.in","rt");
	FILE * fo = fopen("orase.out","wt");

	long m,n;
	fscanf(fi,"%ld %ld",&m,&n);
	for (long i=1; i<=n; i++) {
		fscanf(fi,"%ld %ld",&ora[i].princ,&ora[i].lat);
	};
	qsort(&ora[1],n,sizeof(oras),compor);
	long max_=0, maxmare=0;
	max_=ora[1].princ + ora[1].lat;
	for (long i=2; i<=n; i++) {
		max_+=(ora[i].princ-ora[i-1].princ);
		if (max_+ora[i].lat>maxmare) {
		      maxmare=ora[i].lat+max_;
		};
		if (max_<ora[i].lat) {
		      max_=ora[i].lat;
		};
	};
	fprintf(fo,"%ld\n",maxmare);

	fclose(fi); fclose(fo);
	return 0;
};