Submission #799569

#TimeUsernameProblemLanguageResultExecution timeMemory
799569eltu0815Team Contest (JOI22_team)C++14
100 / 100
95 ms18732 KiB
#include <bits/stdc++.h> #define MAX 600005 #define MOD (ll)(998244353) #define INF (ll)(1e18) using namespace std; typedef long long ll; typedef pair<ll, ll> pll; ll n, m, k, tt; struct INFO { ll a, b, c; } arr[MAX]; vector<pll> a, b, c; ll used[MAX]; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cin >> n; for(ll i = 1; i <= n; ++i) cin >> arr[i].a >> arr[i].b >> arr[i].c; for(ll i = 1; i <= n; ++i) a.push_back({arr[i].a, i}); for(ll i = 1; i <= n; ++i) b.push_back({arr[i].b, i}); for(ll i = 1; i <= n; ++i) c.push_back({arr[i].c, i}); sort(a.begin(), a.end(), greater<pll>()); sort(b.begin(), b.end(), greater<pll>()); sort(c.begin(), c.end(), greater<pll>()); ll p = 0, q = 0, r = 0; while(p < n && q < n && r < n) { ll i = a[p].second, j = b[q].second, k = c[r].second; if(used[i]) { ++p; continue; } if(used[j]) { ++q; continue; } if(used[k]) { ++r; continue; } if(arr[i].b >= arr[j].b || arr[i].c >= arr[k].c) { used[i] = 1; continue; } if(arr[j].a >= arr[i].a || arr[j].c >= arr[k].c) { used[j] = 1; continue; } if(arr[k].a >= arr[i].a || arr[k].b >= arr[j].b) { used[k] = 1; continue; } cout << arr[i].a + arr[j].b + arr[k].c; return 0; } cout << -1; return 0; }
#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...