Pagini recente » Cod sursa (job #1252889) | Cod sursa (job #1344829) | Cod sursa (job #176413) | Cod sursa (job #1311285) | Cod sursa (job #2334765)
#include <bits/stdc++.h>
using namespace std;
const int nmax=50005;
struct numere
{
int l;
int d;
bool operator <(const numere &other) const
{
return d<other.d;
}
};
numere aux[nmax];
numere v[nmax];
int main()
{
freopen("orase.in", "r", stdin);
freopen("orase.out", "w", stdout);
int m, n, rasp=0;
scanf("%d%d", &m, &n);
for(int i=1;i<=n;i++)
scanf("%d%d", &aux[i].d, &aux[i].l);
sort(aux+1, aux+n+1);
int k=1;
for(int i=1;i<=n;i++)
{
while(aux[i].d==aux[i+1].d&&i<=n)
i++;
v[k].d=aux[i].d;
v[k++].l=aux[i].l;
}
int last=0;
for(int i=2;i<k;i++)
{
if(v[i].l+v[i-1].l+v[i].d-v[i-1].d>v[i].l+v[last].l+v[i].d-v[last].d)
last=i-1;
rasp=max(rasp, v[i].l+v[last].l+v[i].d-v[last].d);
}
printf("%d\n", rasp);
return 0;
}