제출 #1268587

#제출 시각아이디문제언어결과실행 시간메모리
1268587Born_To_LaughTeam Contest (JOI22_team)C++17
100 / 100
72 ms4424 KiB
// Born_To_Laugh - Hughie Do #include <bits/stdc++.h> #define alle(AC) AC.begin(), AC.end() #define fi first #define se second using namespace std; typedef long long ll; [[maybe_unused]] const ll MOD = 998244353, INF = 1e9 + 7; const int maxn = 15e4 + 10; int n; vector<array<int, 3>> item(maxn); int idx[maxn], idy[maxn], idz[maxn]; int vis[maxn]; void solve(){ cin >> n; for(int i=1; i<=n; ++i){ cin >> item[i][0] >> item[i][1] >> item[i][2]; idx[i] = idy[i] = idz[i] = i; } sort(idx + 1, idx + 1 + n, [&](int a, int b){ return item[a][0] > item[b][0]; }); sort(idy + 1, idy + 1 + n, [&](int a, int b){ return item[a][1] > item[b][1]; }); sort(idz + 1, idz + 1 + n, [&](int a, int b){ return item[a][2] > item[b][2]; }); /* sort cac index theo gia tri cua tung bien */ int id1 = 1, id2 = 1, id3 = 1; /* neu yeu cau ve y va z cua x qua cao, se giam x */ while(1){ int i = idx[id1]; int j = idy[id2]; int k = idz[id3]; if(item[i][1] == item[j][1] || item[i][2] == item[k][2]){ vis[i] = 1; id1++; } if(item[j][0] == item[i][0] || item[j][2] == item[k][2]){ vis[j] = 1; id2++; } if(item[k][0] == item[i][0] || item[k][1] == item[j][1]){ vis[k] = 1; id3++; } if(vis[i] + vis[j] + vis[k] == 0){ cout << item[i][0] + item[j][1] + item[k][2] << '\n'; return; } while(vis[idx[id1]]){ id1++; } while(vis[idy[id2]]){ id2++; } while(vis[idz[id3]]){ id3++; } if(id1 > n || id2 > n || id3 > n){ break; } } cout << -1 << '\n'; } signed main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); 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...