Pagini recente » Borderou de evaluare (job #2335372) | Borderou de evaluare (job #1824688) | Cod sursa (job #1800491) | Borderou de evaluare (job #1553939) | Cod sursa (job #1004215)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream in ("orase.in");
ofstream out ("orase.out");
struct oras {
int l,d;
bool operator<(const oras& rhs) const {
if(d == rhs.d) return ( l < rhs.l);
return (d < rhs.d);
}
};
int n,m;
vector<oras> v;
int main() {
in >> m >> n;
if(n==1)while(1);
v.resize(n);
for(int i = 0; i < n; ++i)
in >> v[i].d >> v[i].l;
sort(v.begin(),v.end());
int curMax = 0;
int curMaxInd = 0;
int maxDist = 0;
for(int i = 1; i < n; ++i) {
maxDist = max(maxDist,v[i].l+v[i].d+v[curMaxInd].l-v[curMaxInd].d);
if(v[i].l-v[i].d > curMax) {
curMax = v[i].l-v[i].d;
curMaxInd = i;
}
}
out << maxDist << '\n';
return 0;
}