제출 #1131681

#제출 시각아이디문제언어결과실행 시간메모리
1131681tuongllTeam Contest (JOI22_team)C++20
100 / 100
72 ms7328 KiB
// #pragma GCC optimize("O3,unroll-loops") // #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") #include <iostream> #include <cstring> #include <algorithm> #include <vector> #include <utility> #include <cmath> #include <ctime> #include <cassert> #include <set> #include <stack> #include <map> #include <queue> #include <random> #include <chrono> #include <bitset> #include <array> using ll = long long; #define debug(x) cout << #x << " = " << x << '\n' #define separator "===============================================\n" #define all(a) a.begin(), a.end() #define SZ(a) (int)(a).size() using namespace std; const int mxn = 1e5 + 3; const ll mod = 1e9 + 7; const int inf32 = 2e9; const ll inf64 = 3e18; void solve(){ int n; cin >> n; vector<vector<int>> a(3, vector<int>(n)); vector<vector<pair<int, int>>> v(3); for (int i = 0; i < n; ++i){ for (int j = 0; j < 3; ++j){ cin >> a[j][i]; v[j].emplace_back(a[j][i], i); } } for (int j = 0; j < 3; ++j) sort(all(v[j]), greater<>()); vector<bool> vis(n, false); vector<int> it(3, 0); while(max({it[0], it[1], it[2]}) < n){ vector<int> idx(3); for (int j = 0; j < 3; ++j) idx[j] = v[j][it[j]].second; bool good = true; for (int i = 0; i < 3; ++i){ bool flag = false; for (int j = 0; j < 3; ++j){ if (i == j) continue; flag |= a[j][idx[i]] >= a[j][idx[j]]; } if (flag) vis[idx[i]] = true, good = false; } if (good){ cout << a[0][idx[0]] + a[1][idx[1]] + a[2][idx[2]] << '\n'; return; } for (int j = 0; j < 3; ++j) while(it[j] < n && vis[v[j][it[j]].second]) ++it[j]; } cout << -1 << '\n'; } int main(){ auto start = chrono::steady_clock::now(); ios_base::sync_with_stdio(false); cin.tie(NULL); int t = 1; // cin >> t; while(t--) solve(); chrono::duration<double> elapsed {chrono::steady_clock::now() - start}; cerr << "\n>> Runtime: " << elapsed.count() << "s\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...