Submission #602302

#TimeUsernameProblemLanguageResultExecution timeMemory
602302Soumya1Team Contest (JOI22_team)C++17
100 / 100
430 ms27180 KiB
#include <bits/stdc++.h>
#ifdef __LOCAL__
  #include <debug_local.h>
#endif
using namespace std;
void testCase() {
  int n;
  cin >> n;
  vector<int> x(n), y(n), z(n);
  for (int i = 0; i < n; i++) cin >> x[i] >> y[i] >> z[i];
  set<pair<int, int>> s1, s2, s3;
  for (int i = 0; i < n; i++) {
    s1.insert({x[i], i});
    s2.insert({y[i], i});
    s3.insert({z[i], i});
  }
  int ans = -1;
  auto erase = [&](int i) {
    s1.erase({x[i], i});
    s2.erase({y[i], i});
    s3.erase({z[i], i});
    return 1;
  };
  while (!s1.empty()) {
    auto [a, i] = *s1.rbegin();
    auto [b, j] = *s2.rbegin();
    auto [c, k] = *s3.rbegin();
    if (z[i] == c || y[i] == b) {
      erase(i);
      continue;
    }
    if (z[j] == c || x[j] == a) {
      erase(j);
      continue;
    }
    if (x[k] == a || y[k] == b) {
      erase(k);
      continue;
    }
    break;
  }
  if (s1.empty()) cout << ans << "\n";
  else {
    auto [a, i] = *s1.rbegin();
    auto [b, j] = *s2.rbegin();
    auto [c, k] = *s3.rbegin();
    cout << a + b + c << "\n";
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  testCase();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...