제출 #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...