Skip to content

Commit

Permalink
Merge pull request #6 from jackere1/main
Browse files Browse the repository at this point in the history
interval code added
  • Loading branch information
b4ljk authored Feb 15, 2023
2 parents dbb7dde + c0bd603 commit 65feff3
Showing 1 changed file with 38 additions and 0 deletions.
38 changes: 38 additions & 0 deletions bod5-Interval/code/Enkhbold_bodolt.cpp.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int maxWeight(vector<pair<pair<int, int>, int>>& intervals) {
int n = intervals.size();
sort(intervals.begin(), intervals.end(), [](const auto& a, const auto& b) {
return a.first.second < b.first.second;
});
vector<int> dp(n);
dp[0] = intervals[0].second;
for (int i = 1; i < n; i++) {
dp[i] = intervals[i].second;
for (int j = i-1; j >= 0; j--) {
if (intervals[j].first.second <= intervals[i].first.first) {
dp[i] = max(dp[i], dp[j] + intervals[i].second);
break;
}
}
}
return *max_element(dp.begin(), dp.end());
}

int main() {
int n;
cin >> n;
vector<pair<pair<int, int>, int>> intervals;

for (int i = 0; i < n; i++) {
int a, b, w;
cin >> a >> b >> w;
intervals.push_back({{a, b}, w});
}
int max_weight = maxWeight(intervals);
cout << max_weight << endl;
return 0;
}

0 comments on commit 65feff3

Please sign in to comment.