Pagini recente » Cod sursa (job #391355) | Cod sursa (job #393835) | Cod sursa (job #784290) | Cod sursa (job #2647262) | Cod sursa (job #3154559)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("heavymetal.in");
ofstream fout("heavymetal.out");
struct event {
int start, end;
bool operator<(const event &other) const {
return (end - start) < (other.end - other.start);
}
};
int main() {
multiset<event> v;
int n;
fin >> n;
for (int i = 0; i < n; i++) {
int start, finish;
fin >> start >> finish;
v.insert({start, finish});
}
long long total_time = 0;
while (!v.empty()) {
event now = *v.rbegin();
total_time += now.end - now.start;
v.erase(prev(v.end()));
erase_if(v, [now](const event x) {
if (((x.start > now.start) and (x.start < now.end)) || ((x.end > now.start) and (x.end < now.end))) {
return true;
}
return false;
});
}
fout << total_time;
}