제출 #604959

#제출 시각아이디문제언어결과실행 시간메모리
604959MohamedAhmed04Team Contest (JOI22_team)C++14
0 / 100
85 ms9052 KiB
#include <bits/stdc++.h> using namespace std ; const int MAX = 2e5 + 10 ; int arr[MAX][3] ; int n ; vector< array<int , 3> >v[3] ; long long solve(int t1 , int t2 , int t3) { long long Max = -1 ; int j = n-1 , k = n-1 ; for(int i = n-1 ; i >= 0 ; --i) { while(j >= 0 && v[t2][j][t1] >= v[t1][i][t1]) --j ; if(j == -1) break ; while(k >= 0 && (v[t3][k][t1] >= v[t1][i][t1] || v[t3][k][t2] >= v[t2][j][t2])) --k ; if(k == -1) break ; if(v[t1][i][t2] >= v[t2][j][t2] || v[t1][i][t3] >= v[t3][k][t3] || v[t2][j][t3] >= v[t3][k][t3]) continue ; Max = max(Max , 1ll * v[t1][i][t1] + v[t2][j][t2] + v[t3][k][t3]) ; } return Max ; } int main() { ios_base::sync_with_stdio(0) ; cin.tie(0) ; cin>>n ; for(int i = 0 ; i < n ; ++i) { cin>>arr[i][0]>>arr[i][1]>>arr[i][2] ; v[0].push_back({arr[i][0] , -1 * arr[i][1] , -1 * arr[i][2]}) ; v[1].push_back({arr[i][1] , -1 * arr[i][0] , -1 * arr[i][2]}) ; v[2].push_back({arr[i][2] , -1 * arr[i][1] , -1 * arr[i][0]}) ; } sort(v[0].begin() , v[0].end()) ; sort(v[1].begin() , v[1].end()) ; sort(v[2].begin() , v[2].end()) ; for(int i = 0 ; i < n ; ++i) { v[0][i][1] *= -1 , v[0][i][2] *= -1 ; v[1][i][1] *= -1 , v[1][i][2] *= -1 ; v[2][i][1] *= -1 , v[2][i][2] *= -1 ; swap(v[1][i][0] , v[1][i][1]) , swap(v[2][i][0] , v[2][i][2]) ; } vector<int>order = {0 , 1 , 2} ; long long ans = -1 ; do { ans = max(ans , solve(order[0] , order[1] , order[2])) ; }while(next_permutation(order.begin() , order.end())) ; return cout<<ans<<"\n" , 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...