Cod sursa(job #854986)

Utilizator dariusdariusMarian Darius dariusdarius Data 14 ianuarie 2013 15:12:17
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<stdio.h>
#include<algorithm>
#define l first
#define d second
using namespace std;
typedef pair<int,int> City;
class MyComp
{
public: inline bool operator()(const City &a,const City &b)
    {
        return a.l+a.d<b.l+b.d;
    }
};
inline int abs(int a) {return a>0?a:-a;}
inline int dist(City a,City b)
{
    return a.l+b.l+abs(a.d-b.d);
}
City a[50005];
int main()
{
    freopen("orase.in","r",stdin);
    freopen("orase.out","w",stdout);
    int n,i,m;
    scanf("%d%d",&m,&n);
    for(i=1;i<=n;i++)
        scanf("%d%d",&a[i].d,&a[i].l);
    sort(a+1,a+n+1,MyComp());
    int _max=0;
    for(i=2;i<=n;i++)
        if(dist(a[i],a[1])>_max)
            _max=dist(a[i],a[1]);
    for(i=1;i<n;i++)
        if(dist(a[i],a[n])>_max)
            _max=dist(a[i],a[n]);
    printf("%d\n",_max);
    return 0;
}