제출 #1139084

#제출 시각아이디문제언어결과실행 시간메모리
1139084beabossTeam Contest (JOI22_team)C++20
0 / 100
0 ms332 KiB


#include "bits/stdc++.h"

using namespace std;

#define s second
#define f first
#define pb push_back

typedef long long ll;

typedef pair<int, int> pii;
typedef vector<pii> vpii;

typedef vector<int> vi;

#define FOR(i, a, b) for (int i = (a); i<b; i++)

bool ckmin(int& a, int b){ return b < a ? a = b, true : false; }

bool ckmax(int& a, int b){ return b > a ? a = b, true : false; }


const int N = 15e4 + 10;
int a[N], b[N], c[N];
set<pii> x, y, z; 

void delet(int i) {
	x.erase({a[i], i});
	y.erase({b[i], i});
	z.erase({c[i], i});
}


int main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);

	int n;
	cin >> n;

	FOR(i, 0, n) {
		cin >> a[i] >> b[i] >> c[i];
		a[i] = -a[i];
		b[i] = -b[i];
		c[i] = -c[i];

		x.insert({a[i], i});
		y.insert({b[i], i});
		z.insert({c[i], i});
	}

	int res = -1;

	while (x.size()) {
		if ((*x.begin()).s == (*y.begin()).s)
			delet((*x.begin()).s);
		else if ((*x.begin()).s == (*z.begin()).s) 
			delet((*x.begin()).s);
		else if ((*z.begin()).s == (*y.begin()).s) delet((*y.begin()).s);
		else {
			res = -(*x.begin()).f - (*y.begin()).f - (*z.begin()).f;
			break;
		}
	}
	cout << res << endl;




	



}












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