Algo-Trian

This commit is contained in:
e2hang
2025-09-21 12:21:50 +08:00
parent 24522486f1
commit 3bde00039c
25 changed files with 842 additions and 0 deletions

View 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;
}