이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
#define fi first
#define se second
#define ll long long
using namespace std ;
const ll N = 2e5 ;
ll n, ans = -1, x[N + 1], y[N + 1], z[N + 1] ;
set<pair<ll, ll>> vx, vy, vz ;
signed main()
{
ios_base::sync_with_stdio( 0 ) ;
cin.tie( 0 ) ;
cout.tie( 0 ) ;
cin >> n ;
for(ll i = 1 ; i <= n ; i++)
{
cin >> x[i] >> y[i] >> z[i] ;
vx.insert({x[i], i}) ;
vy.insert({y[i], i}) ;
vz.insert({z[i], i}) ;
}
while(vx.size())
{
ll px = (*vx.rbegin()).se, py = (*vy.rbegin()).se, pz = (*vz.rbegin()).se ;
if(y[px] == y[py] || z[px] == z[pz])
{
vx.erase({x[px], px}) ;
vy.erase({y[px], px}) ;
vz.erase({z[px], px}) ;
continue ;
}
if(x[py] == x[px] || z[py] == z[pz])
{
vx.erase({x[py], py}) ;
vy.erase({y[py], py}) ;
vz.erase({z[py], py}) ;
continue ;
}
if(x[pz] == x[px] || y[pz] == y[py])
{
vx.erase({x[pz], pz}) ;
vy.erase({y[pz], pz}) ;
vz.erase({z[pz], pz}) ;
continue ;
}
ans = x[px] + y[py] + z[pz] ;
break ;
}
cout << ans ;
return 0 ;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |