Submission #1270248

#TimeUsernameProblemLanguageResultExecution timeMemory
1270248tvdanDrvca (COCI19_drvca)C++20
0 / 110
1096 ms9144 KiB
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; vector<long long> a(n); for (int i = 0; i < n; i++) cin >> a[i]; sort(a.begin(), a.end()); unordered_set<long long> all(a.begin(), a.end()); for (int j = 1; j < n; j++) { long long d1 = a[j] - a[0]; vector<long long> row1; unordered_set<long long> used; for (long long x = a[0]; all.count(x); x += d1) { row1.push_back(x); used.insert(x); } vector<long long> row2; for (auto x : a) if (!used.count(x)) row2.push_back(x); if (row1.empty() || row2.empty()) continue; bool ok = true; if (row2.size() > 2) { long long d2 = row2[1] - row2[0]; for (int i = 2; i < (int)row2.size(); i++) { if (row2[i] - row2[i - 1] != d2) { ok = false; break; } } } if (ok) { cout << (int)row1.size() << "\n"; for (int i = 0; i < (int)row1.size(); i++) cout << row1[i] << (i + 1 == row1.size() ? '\n' : ' '); cout << (int)row2.size() << "\n"; for (int i = 0; i < (int)row2.size(); i++) cout << row2[i] << (i + 1 == row2.size() ? '\n' : ' '); return 0; } } vector<long long> row1 = {a[0]}; vector<long long> row2(a.begin() + 1, a.end()); bool ok = true; if (row2.size() > 2) { long long d2 = row2[1] - row2[0]; for (int i = 2; i < (int)row2.size(); i++) { if (row2[i] - row2[i - 1] != d2) { ok = false; break; } } } if (!row2.empty() && ok) { cout << 1 << "\n" << row1[0] << "\n"; cout << (int)row2.size() << "\n"; for (int i = 0; i < (int)row2.size(); i++) cout << row2[i] << (i + 1 == row2.size() ? '\n' : ' '); 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...