Pagini recente » Cod sursa (job #2464528) | Cod sursa (job #3337306) | Cod sursa (job #2861046) | Cod sursa (job #1032848) | Cod sursa (job #3324101)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("orase.in");
ofstream fout("orase.out");
int m,n;
struct strada{
int d,l;
}A[50001];
bool ord(strada a, strada b)
{
if(a.l>b.l)
return true;
if(a.l==b.l && a.d>b.d)
return true;
return false;
}
int main()
{
fin>>m>>n;
for(int i=1;i<=n;i++)
fin>>A[i].d>>A[i].l;
sort(A+1,A+n+1,ord);
int distMax=0;
for(int i=1;i<=n;i++)
{
//fout<<A[i].d<<" "<<A[i].l<<endl;
int p=i-1;
while(p>=1 && A[p].l==A[i-1].l)
{
//fout<<A[p].l<<" "<<A[p].d<<" "<<A[i].l+A[p].l-abs(A[i].d-A[p].d)<<endl;
distMax=max(distMax,A[i].l+A[p].l+abs(A[i].d-A[p].d));
p--;
}
p=i+1;
while(p<=n && A[p].l==A[i+1].l)
{
//fout<<A[p].l<<" "<<A[p].d<<" "<<A[i].l+A[p].l-abs(A[i].d-A[p].d)<<endl;
distMax=max(distMax,A[i].l+A[p].l+abs(A[i].d-A[p].d));
p++;
}
//fout<<"distmax="<<distMax<<endl;
}
fout<<distMax;
return 0;
}