Cod sursa(job #446771)

Utilizator PavelPavel Ana-Oriana Pavel Data 26 aprilie 2010 17:39:08
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<fstream>
using namespace std;
ifstream in("orase.in");
ofstream out("orase.out");

struct pozitie//definesc un nou tip de date; fiecare var de acest tip va retine cate 2 int-uri
{
	int x,y;
};

pozitie v[50001];

bool compar(pozitie a,pozitie b)//returneaza true atunci cand a e bine pozitionat fata de b
{
	if(a.x < b.x)
		return true;
	return false;
}

int main()
{
	long n,m,suma=0,smax=0,i,j;
	pozitie departe;
	in>>m>>n;
	for(i=1;i<=n;i++)
		in>>v[i].x>>v[i].y;
	sort(v+1,v+n+1,compar);//primul param=adresa primei comp, al doilea e adresa de dupa ultima, al treilea e f de comp
	departe = v[1];
	for(i=2 ; i<=n ; ++i)
	{
		//verific daca distanta intre v[i] si departe e mai mare ca smax
		//verific daca v[i] poate deveni departe
		suma=0;
		suma=v[i].y+departe.y+(v[i].x-departe.x);
		if(suma>smax)
			smax=suma;
		if(v[i].y>departe.y+v[i].x-departe.x)
			departe=v[i];
		
	}
	out<<smax<<'\n';		
	return 0;
}