Submission #648198

#TimeUsernameProblemLanguageResultExecution timeMemory
648198czhang2718Team Contest (JOI22_team)C++17
100 / 100
179 ms14812 KiB
#include "bits/stdc++.h" using namespace std; #define rep(i,a,b) for(int i=a; i<=b; i++) typedef vector<int> vi; #define pb push_back #define all(x) x.begin(), x.end() #define sz(x) (int) x.size() int n; int main(){ cin.tie(0)->sync_with_stdio(0); cin >> n; vector<vi> v(n, vi(3)); rep(i,0,n-1){ cin >> v[i][0] >> v[i][1] >> v[i][2]; } vector<vi> ind(3, vi(n)); rep(i,0,2){ iota(all(ind[i]), 0); sort(all(ind[i]), [&](int a, int b){ return v[a][i]<v[b][i]; }); } vector<bool> del(n); while(true){ rep(i,0,2){ while(sz(ind[i]) && del[ind[i].back()]) ind[i].pop_back(); if(!sz(ind[i])){ cout << -1; return 0; } } vi mx(3); rep(i,0,2) mx[i]=v[ind[i].back()][i]; bool ch=0; rep(i,0,2){ int cnt=0; rep(j,0,2){ cnt+=v[ind[i].back()][j]==mx[j]; } assert(cnt>=1); if(cnt>1){ del[ind[i].back()]=1; ind[i].pop_back(); ch=1; break; } } if(!ch) break; } int sum=0; rep(i,0,2){ sum+=v[ind[i].back()][i]; } cout << sum; }
#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...