제출 #703283

#제출 시각아이디문제언어결과실행 시간메모리
703283xuliuTeam Contest (JOI22_team)C++17
0 / 100
1 ms320 KiB
#include <bits/stdc++.h>

using namespace std;

#define ll long long 
#define debug if(0)

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	int n; cin>>n;
	vector<tuple<int, int, int>> p;
	vector<pair<int, int>> t[3];
	vector<bool> used(n+1, 0);
	for(int i=0; i<n; i++) {
		int a, b, c; cin>>a>>b>>c;
		p.push_back({a, b, c});
		t[0].push_back({a, i});
		t[1].push_back({b, i});
		t[2].push_back({c, i});
	}
	sort(t[0].begin(), t[0].end());
	sort(t[1].begin(), t[1].end());
	sort(t[2].begin(), t[2].end());
	reverse(t[0].begin(), t[0].end());
	reverse(t[1].begin(), t[1].end());
	reverse(t[2].begin(), t[2].end());
	int id[3] = {0, 0, 0};
	auto check = [&]() {
		if(max(id[0], max(id[1], id[2])) >= n) return false;
		else return true;
	};
	int ans = -1;
	while(check() && ans == -1) {
		if(used[t[0][id[0]].second]) id[0]++;
		else if(used[t[1][id[1]].second]) id[1]++;
		else if(used[t[2][id[2]].second]) id[2]++;
		else {
			if(t[0][id[0]].second == t[1][id[1]].second) used[t[0][id[0]].second] = 1;
			else if(t[0][id[0]].second == t[2][id[2]].second) used[t[0][id[0]].second] = 1;
			else if(t[2][id[2]].second == t[1][id[1]].second) used[t[2][id[2]].second] = 1;
			else {
				ans = t[0][id[0]].first+t[1][id[1]].first+t[2][id[2]].first;
				break;
			}
		}
	}
	cout<<ans<<"\n";
}
#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...