Pagini recente » Cod sursa (job #3121233) | Cod sursa (job #2293195) | Cod sursa (job #3182160) | Cod sursa (job #2202321) | Cod sursa (job #2086105)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("orase.in");
ofstream fout("orase.out");
int m, n, maxi;
struct dimi1{
int x, y;
}v[50002];
struct dimi2{
int xx, yy, poz;
}vv[50002];
inline bool cmp(const dimi1 a, const dimi1 b)
{
if(a.x==b.x)
return a.y<b.y;
return a.x<b.x;
}inline bool cmp1(const dimi2 a, const dimi2 b)
{
return a.xx+a.yy<b.xx+b.yy;
}
int main()
{
int i;
fin>>m>>n;
for(i=1; i<=n; i++)
fin>>v[i].x>>v[i].y;
sort(v+1,v+n+1,cmp);
for(i=1; i<=n; i++)
vv[i].xx=v[i].x, vv[i].yy=v[i].y, vv[i].poz=i;
sort(vv+1,vv+n+1,cmp1);
for(i=1; i<=n-1; i++)
{
if(v[i].x==v[n].x && v[vv[n].poz].y==v[vv[n].poz].y)
maxi=max(maxi,(-1)*v[i].x+v[i].y+v[vv[n-1].poz].x+v[vv[n-1].poz].y);
else maxi=max(maxi,(-1)*v[i].x+v[i].y+v[vv[n].poz].x+v[vv[n].poz].y);
}
fout<<maxi<<'\n';
return 0;
}