Submission #917699

#TimeUsernameProblemLanguageResultExecution timeMemory
917699manishjha91Team Contest (JOI22_team)C++17
37 / 100
2081 ms2968 KiB
#include<bits/stdc++.h>
using namespace std;

using ll = long long;
using ull = unsigned long long;
using lld = long double;

void solve()
{
	int n;
	cin >> n;

	vector<array<int,3>> a(n);
	for (int i = 0; i < n; i++)
	{
		cin >> a[i][0]>>a[i][1]>>a[i][2];
	}
	
	sort(a.begin(),a.end());
	
	int ans = -1;
	
	
	for(int i=0; i<n; i++)
	{
		int mx = -1e9;
		int currmx = -1e9;
		int l = i+1;
		for(int j=i+1; j<n; j++)
		{
			if(a[j][1]>=a[i][1]) continue;
			

			if(a[j][0]==a[l][0])
			{
				if(a[j][1]>=a[i][1]) continue;
				currmx = max(currmx, a[j][2]);
			}
			else
			{
				mx = max(mx, currmx);
				l = j;
				currmx = a[j][2];
			}
			if(mx>a[i][2] && mx>a[j][2] && a[j][0]>a[i][0])
			{
				ans = max(ans, a[i][1] + a[j][0] + mx);
			}
		}
	}
	
	for(int i=0; i<n; i++)
	{
		int mx = -1e9;
		int currmx = -1e9;
		int l = i+1;
		for(int j=i+1; j<n; j++)
		{
			if(a[j][2]>=a[i][2]) continue;
			if(a[j][0]==a[l][0])
			{
				if(a[j][2]>=a[i][2]) continue;
				currmx = max(currmx, a[j][1]);
			}
			else
			{
				mx = max(mx, currmx);
				l = j;
				currmx = a[j][1];
			}

			if(mx>a[i][1] && mx>a[j][1] && a[j][0]>a[i][0])
			{
				ans = max(ans, a[i][2] + a[j][0] + mx);
			}
		}
	}
	cout<<ans<<"\n";
	
}

int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);

// #ifndef ONLINE_JUDGE
// 	freopen("error.txt", "w", stderr);
// #endif

	int tt = 1;
	// cin >> tt;
	while (tt--)
	{
		solve();
	}
}
#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...