Pagini recente » Romanii la DisneyWorld - partea a treia | Cod sursa (job #1488557) | Cod sursa (job #202787) | Cod sursa (job #2401544) | Cod sursa (job #2313255)
#include <bits/stdc++.h>
/// TONI BO$$ was here
/// #MLC
using namespace std;
struct oras
{
int dist,lg;
bool operator <(const oras &other) const
{
return dist<other.dist;
}
};
oras aux[50002],v[50002];
int main()
{
int m,n,i,ct,town,maxdist;
freopen("orase.in","r",stdin);
freopen("orase.out","w",stdout);
scanf("%d%d",&m,&n);
for(i=1; i<=n; i++)
scanf("%d%d",&aux[i].dist,&aux[i].lg);
sort(aux+1,aux+1+n);
/*for(i=1; i<=n; i++)
printf("%d %d\n",v[i].dist,v[i].lg);*/
maxdist=0;
ct=0;
for(i=1; i<=n;)
if(aux[i].dist==aux[i+1].dist)
{
maxdist=max(maxdist,aux[i].lg+aux[i+1].lg);
v[++ct]={aux[i].dist,max(aux[i].lg,aux[i+1].lg)};
i+=2;
}
else
{
v[++ct]={aux[i].dist,aux[i].lg};
i++;
}
town=0;
for(i=2; i<=n; i++)
{
if(v[i].dist-v[town].dist+v[town].lg+v[i].lg<v[i].dist-v[i-1].dist+v[i-1].lg+v[i].lg)
town=i-1;
if(v[i].dist-v[town].dist+v[town].lg+v[i].lg>maxdist)
maxdist=v[i].dist-v[town].dist+v[town].lg+v[i].lg;
}
printf("%d",maxdist);
return 0;
}