Submission #917706

#TimeUsernameProblemLanguageResultExecution timeMemory
917706manishjha91Team Contest (JOI22_team)C++17
0 / 100
2082 ms3196 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;
	
	priority_queue<pair<int,int>> pqy,pqz;
	vector<pair<int,int>> curry,currz;
	
	int l = 0;
	for(int i=0; i<n; i++)
	{
		priority_queue<pair<int,int>> temppqy,temppqz;
		
		if(a[i][0]!=a[l][0])
		{
			while(!curry.empty())
			{
				pqy.push(curry.back());
				pqz.push(currz.back());
				currz.pop_back();
				curry.pop_back();
			}
			l = i;
		}
		curry.push_back({a[i][1],i});
		currz.push_back({a[i][2],i});
		
		while(!pqy.empty() && (pqy.top().second==pqz.top().second))
		{
			temppqy.push(pqy.top());
			temppqz.push(pqz.top());
			pqy.pop(); pqz.pop();
		}
		
		if(!pqy.empty())
		{
			if(pqy.top().first>a[i][1] && pqz.top().first>a[i][2])
				ans = max(ans, a[i][0] + pqy.top().first + pqz.top().first);
			temppqy.push(pqy.top());
			temppqz.push(pqz.top());
		}
		
		swap(temppqy,pqy);
		swap(temppqz,pqz);
	}
	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...