제출 #545279

#제출 시각아이디문제언어결과실행 시간메모리
545279leakedTeam Contest (JOI22_team)C++14
8 / 100
2082 ms9916 KiB
#include <bits/stdc++.h>

#define f first
#define s second
#define m_p make_pair
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define vec vector
#define pb push_back
#define sz(x) (int)(x).size()
#define pw(x) (1LL<<(x))
#define fast_resp ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
typedef long double ld;
typedef pair<int,ll> pil;
template<class T> bool umin(T &a,const T &b){return (a>b?a=b,1:0);}
template<class T> bool umax(T &a,const T &b){return (a<b?a=b,1:0);}
const ll inf=1e18;
signed main(){
    fast_resp;
    int n;
    cin>>n;
    vec<vec<int>>a(n,vec<int>(3));
    vec<int>mx(3);
    vec<vec<int>> kekw(3);
    for(int i=0;i<n;i++){
        for(int j=0;j<3;j++){
            cin>>a[i][j],umax(mx[j],a[i][j]);
//            kekw[j].pb(a[i][j]);
        }
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<3;j++){
            int ok=1;
            for(int t=0;t<3;t++){
                if(a[i][t]==mx[t] && j!=t) ok=0;
            }
            if(ok)
                kekw[j].pb(a[i][j]);
        }
    }
    for(int j=0;j<3;j++){
        sort(all(kekw[j]));
        kekw[j].erase(unique(all(kekw[j])),kekw[j].end());
        reverse(all(kekw[j]));
        kekw[j].resize(min(sz(kekw[j]),n));
    }
    auto check=[&](int x,int j){
//        if(x==kekw[j].back() || (sz(kekw[j])>1 && kekw[j][sz(kekw[j])-2]==x))
//            return 1;
        int ok=0;
        for(auto &z : kekw[j]) ok|=(z==x);
        return ok;
    };
    vec<int>ans;
    int mxt=-1;
//    for(i)
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            for(int k=0;k<n;k++){
                if(a[i][0]>max(a[j][0],a[k][0]) &&
                   a[j][1]>max(a[i][1],a[k][1]) &&
                   a[k][2]>max(a[i][2],a[j][2])){
                    if(check(a[i][0],0) || check(a[j][1],1) || check(a[k][2],2)){
                        umax(mxt,a[i][0]+a[j][1]+a[k][2]);
//                        ans={i,j,k};
                    }
                }
            }
        }
    }
    cout<<mxt;
//    if(mxt==-1){
//        cout<<-1;
//        return 0;
//    }
    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...