Submission #1270250

#TimeUsernameProblemLanguageResultExecution timeMemory
1270250tvdanDrvca (COCI19_drvca)C++20
0 / 110
18 ms3776 KiB
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; if (!(cin >> n)) return 0; vector<long long> a(n); for (int i = 0; i < n; ++i) cin >> a[i]; sort(a.begin(), a.end()); if (n == 1) { cout << -1 << "\n"; return 0; } auto try_pair = [&](int i, int j) -> bool { vector<char> used(n, false); long long d1 = a[j] - a[i]; used[i] = true; used[j] = true; long long last = a[j]; int pos = j; while (true) { long long need = last + d1; auto it = lower_bound(a.begin() + pos + 1, a.end(), need); if (it == a.end() || *it != need) break; pos = int(it - a.begin()); used[pos] = true; last = need; } vector<long long> b; for (int k = 0; k < n; ++k) if (!used[k]) b.push_back(a[k]); if (b.empty()) return false; if ((int)b.size() >= 2) { long long d2 = b[1] - b[0]; for (size_t t = 2; t < b.size(); ++t) { if (b[t] - b[t-1] != d2) return false; } } vector<long long> a1, a2; for (int k = 0; k < n; ++k) { if (used[k]) a1.push_back(a[k]); else a2.push_back(a[k]); } cout << a1.size() << "\n"; for (size_t t = 0; t < a1.size(); ++t) { if (t) cout << ' '; cout << a1[t]; } cout << "\n"; cout << a2.size() << "\n"; for (size_t t = 0; t < a2.size(); ++t) { if (t) cout << ' '; cout << a2[t]; } cout << "\n"; return true; }; vector<pair<int,int>> tries; if (n >= 2) tries.emplace_back(0,1); if (n >= 3) { tries.emplace_back(0,2); tries.emplace_back(1,2); } for (auto pr : tries) { if (try_pair(pr.first, pr.second)) return 0; } cout << -1 << "\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...