Algo-Trian
This commit is contained in:
34
Algorithm/Sort/P1496 火烧赤壁.cpp
Normal file
34
Algorithm/Sort/P1496 火烧赤壁.cpp
Normal file
@@ -0,0 +1,34 @@
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#include <utility>
|
||||
#include <algorithm>
|
||||
using namespace std;
|
||||
struct cmp{
|
||||
bool operator()(const pair<int, int>& a, const pair<int, int>& b){
|
||||
return a.first < b.first;
|
||||
}
|
||||
};
|
||||
int main(){
|
||||
int n;
|
||||
cin >> n;
|
||||
vector<pair<int, int>> dp(n);
|
||||
//<2F><><EFBFBD><EFBFBD>
|
||||
for(int i = 0; i < n; i++){
|
||||
cin >> dp[i].first >> dp[i].second;
|
||||
}
|
||||
//<2F><><EFBFBD><EFBFBD>dp.first<73><74><EFBFBD><EFBFBD>
|
||||
sort(dp.begin(), dp.end(), cmp());
|
||||
vector<pair<int, int>> merge;
|
||||
for(auto [l, r] : dp){
|
||||
if (merged.empty() || merged.back().second < l)
|
||||
merged.push_back({l,r});
|
||||
else
|
||||
merged.back().second = max(merged.back().second, r);
|
||||
}
|
||||
int sum = 0;
|
||||
for(auto [l, r] : merge){
|
||||
sum += r - l;
|
||||
}
|
||||
cout << sum << endl;
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user