Submission #696714

#TimeUsernameProblemLanguageResultExecution timeMemory
696714ld_minh4354Team Contest (JOI22_team)C++17
0 / 100
30 ms4688 KiB
#include<bits/stdc++.h>
using namespace std;

#define int long long
#define fi first
#define se second
#define pb push_back



signed main()
{
	ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
//	freopen("input.000","r",stdin);
//	freopen("output.000","w",stdout);
//	srand((unsigned)time(NULL));
//	rand()

	int n,i,cur_num,cur_id,cur_x,fur_x,cur_y,fur_y,j,ans;
	static pair<int,pair<int,int>> a[150005];
	queue<pair<int,int>> q;
	
	cin>>n;
	for (i=1;i<n+1;i++) cin>>a[i].se.fi>>a[i].se.se>>a[i].fi;
	sort(a+1,a+n+1);
	
//	for (i=1;i<n+1;i++) cout<<y[i].fi<<y[i].se.fi<<y[i].se.se<<"\n";
	
	cur_x=cur_y=fur_x=fur_y=0;
	cur_num=a[1].fi;
	cur_id=1;
	ans=-1;
	
	for (i=1;i<n+1;i++)
	{
		if (cur_num < a[i].fi)
		{
			for (j=cur_id; j<i; j++)
			if (a[j].se.fi >= fur_x and a[j].se.se >= fur_y)
			{
				fur_x=a[j].se.fi;
				fur_y=a[j].se.se;
			}
			else
			{
				cur_x=fur_x=max(fur_x,a[j].se.fi);
				cur_y=fur_y=max(fur_y,a[j].se.se);
			}
			
			cur_id=i;
			cur_num=a[i].fi;
		}
		
		if (a[i].se.fi < cur_x and a[i].se.se < cur_y)
		ans=max(ans,a[i].fi + cur_x + cur_y);	 
	}
	
	cout<<ans;
}

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