이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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... |