Pagini recente » Cod sursa (job #1780508) | Cod sursa (job #338166) | Cod sursa (job #2093948) | Cod sursa (job #1539271) | Cod sursa (job #1768494)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("orase.in");
ofstream fout("orase.out");
long long n,i,m,sol,x,maxim,sol1;
pair<int,int>v[50003];
int main(){
fin>>m>>n;
for(i=1;i<=n;i++){
fin>>v[i].first>>v[i].second;
}
sort(v+1,v+n+1);
sol=1;// cel mai indepartat oras depistat pana acum
maxim=v[2].second+v[2].first-v[i].first+v[1].second;//distanta dintre cele mai indepartate orase gasite pana acum
sol1=2;//orasul care a dat maximul cu sol
for(i=3;i<=n;i++){
if(v[i].first-v[i-1].first+v[i-1].second<=v[i].first-v[sol].first+v[sol].second){
if(v[i].first-v[sol1].first+v[i].second>=v[sol1].second){
sol1=i;
maxim=v[i].second+v[i].first-v[sol].first+v[sol].second;
}
}
else{
sol=i-1;
sol1=i;
maxim=v[i].first-v[i-1].first+v[i-1].second+v[i].second;
}
}
fout<<maxim;
return 0;
}