Pagini recente » Cod sursa (job #2357102) | Cod sursa (job #866390) | Cod sursa (job #2264816) | Cod sursa (job #1595559) | Cod sursa (job #3239586)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int main() {
ifstream fin("heavymetal.in");
ofstream fout("heavymetal.out");
unsigned int N, i, j, ma;
fin >> N;
pair<unsigned int, unsigned int> ore[N];
unsigned int m[N]={};
for(i=0; i<N; ++i) {
fin >> ore[i].first >> ore[i].second;
}
sort(ore, ore+N, [](const std::pair<unsigned int, unsigned int> &left, const std::pair<unsigned int,unsigned int> &right) {
return left.second < right.second;
});
m[0] = ore[0].second - ore[0].first;
for(i=1; i<N; ++i) {
ma = ore[i].second - ore[i].first;
for(j=i-1; j>=0; --j) {
if(ore[j].second <= ore[i].first) {
ma += m[j];
break;
}
}
m[i] = max(ma, m[i-1]);
}
fout << m[N-1];
return 0;
}