This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
vector<vector<int>> a(n, vector<int>(3));
for (auto &x : a) {
for (auto &y : x) {
cin >> y;
}
}
sort(a.begin(), a.end());
set<pair<int, int>> arr;
int ans = -1;
for (int i = 0; i < n; i++) {
set<pair<int, int>> brr;
for (auto itr = arr.begin(); itr != arr.end(); itr++) {
if (brr.size() && brr.rbegin()->first > itr->second &&
brr.rbegin()->first > a[i][2]) {
ans = max(ans, a[i][0] + itr->first + brr.rbegin()->first);
}
brr.insert({itr->second, itr->first});
while (itr != arr.end()) {
auto jtr = itr;
jtr++;
if (jtr != arr.end() && jtr->first == itr->first) {
itr = jtr;
brr.insert({itr->second, itr->first});
} else {
break;
}
}
}
arr.insert({a[i][1], a[i][2]});
while (i < n - 1 && a[i + 1][0] == a[i][0]) {
i++;
arr.insert({a[i][1], a[i][2]});
}
}
cout << ans << "\n";
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |