Submission #1244250

#TimeUsernameProblemLanguageResultExecution timeMemory
1244250nvujicaTeam Contest (JOI22_team)C++20
100 / 100
91 ms4072 KiB
#include <bits/stdc++.h> #define ll long long #define fi first #define se second using namespace std; const int maxn = 1.5e5 + 10; int n; //int x[maxn]; //int y[maxn]; //int z[maxn]; map <vector <int>, int> mp; vector<int> v[3]; int ar[maxn][3]; bool cmp0(int i, int j){ return ar[i][0] < ar[j][0]; } bool cmp1(int i, int j){ return ar[i][1] < ar[j][1]; } bool cmp2(int i, int j){ return ar[i][2] < ar[j][2]; } int veci(int a, int b, int c){ int cnt = 0; for(int i = 0; i < 3; i++){ cnt += (ar[a][i] >= ar[b][i] && ar[a][i] >= ar[c][i]); } return cnt; } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cin >> n; for(int i = 0; i < n; i++){ for(int j = 0; j < 3; j++){ cin >> ar[i][j]; v[j].push_back(i); } } sort(v[0].begin(), v[0].end(), cmp0); sort(v[1].begin(), v[1].end(), cmp1); sort(v[2].begin(), v[2].end(), cmp2); // for(int i = 0; i < n; i++){ // cout << v[0][i] << ' '; // } // cout << endl; int ans = 0; // cout << endl; while(!v[0].empty() && !v[1].empty() && !v[2].empty()){ int a = v[0].back(); int b = v[1].back(); int c = v[2].back(); int ca = veci(a, b, c), cb = veci(b, a, c), cc = veci(c, a, b); // cout << a << ' ' << b << ' ' << c << endl; if(ca > 1){ v[0].pop_back(); continue; } if(cb > 1){ v[1].pop_back(); continue; } if(cc > 1){ v[2].pop_back(); continue; } ans = ar[a][0] + ar[b][1] + ar[c][2]; break; } if(ans == 0) ans--; cout << ans; 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...