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;
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 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... |