Submission #885584

#TimeUsernameProblemLanguageResultExecution timeMemory
885584ByeWorldTeam Contest (JOI22_team)C++14
17 / 100
2088 ms10608 KiB
#include <bits/stdc++.h>
#pragma GCC optimize("Ofast,unroll-loops")
#define bupol __builtin_popcount
#define int long long 
#define ll long long
#define ld long double
#define fi first
#define se second
#define pb push_back
#define lf (id<<1)
#define rg ((id<<1)|1)
#define md ((l+r)>>1)
using namespace std;
const int MAXN = 3e5+20;
const int LOG = 60;
const int MOD = 998244353;
const int SQRT = 520;
const int INF = 1e18;
typedef pair<int,int> pii;
typedef pair<pii,int> ipii;
 
int n, N;
int a[MAXN], b[MAXN], c[MAXN];
vector <ipii> vec;

signed main(){
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    cin >> N;
    for(int i=1; i<=N; i++){
        int x, y, z; cin >> x >> y >> z;
        vec.pb({{x, y}, z});
    }
    vec.pb({{-1, -1}, -1});
    sort(vec.begin(), vec.end());
    vec.resize(unique(vec.begin(), vec.end()) - vec.begin());
    n = vec.size()-1;
    for(int i=1; i<=n; i++){
        a[i] = vec[i].fi.fi;
        b[i] = vec[i].fi.se;
        c[i] = vec[i].se;
    }


    int ans = -1;
    for(int i=1; i<=n; i++){
        for(int j=i+1; j<=n; j++){
            for(int k=j+1; k<=n; k++){
                int id1=-1, id2=-1, id3=-1;
                
                if(a[i] > max(a[j], a[k])) id1 = i;
                else if(a[j] > max(a[i], a[k])) id1 = j; 
                else if(a[k] > max(a[i], a[j])) id1 = k;
                if(b[i] > max(b[j], b[k])) id2 = i;
                else if(b[j] > max(b[i], b[k])) id2 = j; 
                else if(b[k] > max(b[i], b[j])) id2 = k;
                if(c[i] > max(c[j], c[k])) id3 = i;
                else if(c[j] > max(c[i], c[k])) id3 = j; 
                else if(c[k] > max(c[i], c[j])) id3 = k;

                bool x = 1;
                if(id1==-1 || id2==-1 || id3==-1) x = 0;
                if(id1==id2 || id1==id3 || id2==id3) x = 0;
                if(x) ans = max(ans, max(a[i], max(a[j], a[k])) + max(b[i], max(b[j], b[k]))
                     + max(c[i], max(c[j], c[k])) );
            }
        }
    }
    cout << ans << '\n';
}
#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...