Submission #591848

#TimeUsernameProblemLanguageResultExecution timeMemory
591848Loki_NguyenDrvca (COCI19_drvca)C++14
0 / 110
95 ms19544 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pll pair<ll, int> #define pii pair<int, int> #define fi first #define se second #define pb push_back const int N = 3e5 + 3; const int M = 1 << 24; const int mod = 1e9 + 7; const int base = 300; const ll inf = 1e12; int pw(int k, int n) { int total = 1; for (; n; n >>= 1) { if (n & 1) total = total * k % mod; k = k * k % mod; } return total; } int m, n, t, k, a[N], ans, b[N], c[N]; vector<int> adj[N], L, R; multiset<int> st, cur; bool check(int s, int d) { L.clear(); R.clear(); st = cur; while (true) { if (st.find(s) == st.end()) break; L.pb(s); st.erase(st.find(s)); s += d; } if (st.size() <= 1) { if(!st.empty())R.pb(*st.begin()); return true; } s = (*st.begin()); R.pb(s); st.erase(st.begin()); d = (*st.begin()) - s; while (!st.empty()) { s += d; R.pb(s); if (*st.begin() != s) return false; st.erase(st.begin()); } return true; } void sol() { cin >> n; for (int i = 1; i <= n; i++) { cin >> a[i]; cur.insert(a[i]); } sort(a+1, a+1+n); if(check(a[1], a[2]-a[1])) { if(R.empty()) { R.pb(L.back()); L.pop_back(); } } else if (check(a[1], a[3] - a[1])) { if (R.empty()) { R.pb(L.back()); L.pop_back(); } } else if(check(a[2], a[3]-a[2])) { if (R.empty()) { R.pb(L.back()); L.pop_back(); } } else { cout << -1; return; } cout << L.size() << '\n'; for(int x: L)cout << x <<" "; cout << '\n'; cout << R.size() << '\n'; for(int x: R)cout << x <<" "; } int main() { cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0); #define task "tests" if (fopen(task ".inp", "r")) { freopen(task ".inp", "r", stdin); freopen(task ".out", "w", stdout); } int ntest = 1; // cin >> ntest; while (ntest-- > 0) sol(); }

Compilation message (stderr)

drvca.cpp: In function 'int main()':
drvca.cpp:113:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  113 |         freopen(task ".inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
drvca.cpp:114:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  114 |         freopen(task ".out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...