Submission #917792

#TimeUsernameProblemLanguageResultExecution timeMemory
917792manishjha91Team Contest (JOI22_team)C++17
0 / 100
65 ms6792 KiB
#include<bits/stdc++.h> using namespace std; using ll = long long; using ull = unsigned long long; using lld = long double; const int inf = 1e9; int get(vector<array<int,3>>&a, int idx) { int n = a.size(); sort(a.begin(),a.end(), [&](array<int,3>x, array<int,3>y){ return x[idx]<y[idx]; }); int mxx = a.back()[idx]; int mny = inf; int mnz = inf; for(int i=n-1; i>=0; i--) { if(a[i][idx]!=mxx) break; mny = a[i][(idx+1)%3]; mnz = a[i][(idx+2)%3]; } priority_queue<pair<int,int>> pqy,pqz; for(int i=0; i<n; i++) { if(a[i][idx]!=mxx) { pqy.push({a[i][(idx+1)%3],i}); pqz.push({a[i][(idx+2)%3],i}); } else break; } int ans = -1; while(!pqy.empty() && pqy.top().second==pqz.top().second) { pqy.pop(); pqz.pop(); } if(!pqy.empty() && pqy.top().first>mny && pqz.top().first>mnz) { ans = max(ans, mxx + pqy.top().first + pqz.top().first); } return ans; } void solve() { int n; cin >> n; vector<array<int,3>> a(n); int mxx = 0, mxy = 0, mxz = 0; int mnx = inf, mny = inf, mnz = inf; for (int i = 0; i < n; i++) { cin >> a[i][0]>>a[i][1]>>a[i][2]; mxx = max(mxx,a[i][0]); mxy = max(mxy,a[i][1]); mxz = max(mxz,a[i][2]); mnx = min(mnx, a[i][0]); mny = min(mny, a[i][1]); mnz = min(mnz, a[i][2]); } vector<array<int,3>> b; for(int i=0; i<n; i++) { int cnt = 0; if(a[i][0]==mxx) cnt++; if(a[i][1]==mxy) cnt++; if(a[i][2]==mxz) cnt++; if(cnt>=2) continue; b.push_back(a[i]); } swap(a,b); n = a.size(); if(n<=2) { cout<<"-1\n"; return; } int ans = -1; for(int i=0; i<3; i++) { ans = max(ans, get(a,i)); } cout<<ans<<"\n"; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); // #ifndef ONLINE_JUDGE // freopen("error.txt", "w", stderr); // #endif int tt = 1; // cin >> tt; while (tt--) { solve(); } }
#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...