Submission #362335

# Submission time Handle Problem Language Result Execution time Memory
362335 2021-02-02T17:18:22 Z limabeans Drvca (COCI19_drvca) C++17
0 / 110
31 ms 2412 KB
#include <bits/stdc++.h>
using namespace std;

template<typename T>
void out(T x) { cout << x << endl; exit(0); }
#define watch(x) cout << (#x) << " is " << (x) << endl





using ll = long long;


const int maxn = 1e6 + 5;




bool valid(vector<int> a) {
    //if (a.empty()) return false;
    if ((int)a.size()<=2) return true;
    int gap = a[1]-a[0];
    for (int i=1; i<(int)a.size(); i++) {
	if (gap!=a[i]-a[i-1]) return false;
    }
    return true;
}

int n;
vector<int> a;

int main() {
    ios_base::sync_with_stdio(false); cin.tie(0);  cout.tie(0);

    cin>>n;
    a.resize(n);
    for (int i=0; i<n; i++) {
	cin>>a[i];
    }

    sort(a.begin(), a.end());

    if (n<=4) {
	for (int mask=0; mask<1<<n; mask++) {
	    vector<int> v, w;
	    for (int i=0; i<n; i++) {
		if (mask>>i&1) {
		    v.push_back(a[i]);
		} else {
		    w.push_back(a[i]);
		}
	    }
	    if (v.empty()) continue;
	    if (w.empty()) continue;
	    
	    if (valid(v) && valid(w)) {
		cout<<v.size()<<endl;
		for (int x: v) cout<<x<<" ";
		cout<<endl;
		cout<<w.size()<<endl;
		for (int x: w) cout<<x<<" ";
		cout<<endl;
		return 0;
	    }
	}

	out(-1);
    }


    for (int mask=0; mask<16; mask++) {
	vector<int> v, w;
	for (int i=0; i<4; i++) {
	    if (mask>>i&1) {
		v.push_back(a[i]);
	    } else {
		w.push_back(a[i]);
	    }
	}
	if (valid(v) && valid(w)) {

	    /*cout<<"TEST"<<endl;
	    cout<<v.size()<<endl;
	    for (int x: v) cout<<x<<" ";
	    cout<<endl;
	    cout<<w.size()<<endl;
	    for (int x: w) cout<<x<<" ";
	    cout<<endl;
	    cout<<"..."<<endl;*/
	    
	    bool ok = true;
	    for (int i=4; i<n && ok; i++) {
		if (v.size()<w.size()) {
		    swap(v,w);
		}
		assert((int)v.size()>=2);
		if (a[i]-v.back()==v[1]-v[0]) {
		    v.push_back(a[i]);
		} else {
		    if ((int)w.size()<=1) {
			w.push_back(a[i]);
		    } else if (a[i]-w.back()==w[1]-w[0]) {
			w.push_back(a[i]);
		    } else {
			ok = false;
		    }
		}
	    }

	    if (ok) {
		if (v.size()<w.size()) {
		    swap(v,w);
		}
		if (w.empty()) {
		    w.push_back(v.back());
		    v.pop_back();
		}
		cout<<v.size()<<endl;
		for (int x: v) cout<<x<<" ";
		cout<<endl;
		cout<<w.size()<<endl;
		for (int x: w) cout<<x<<" ";
		cout<<endl;
		return 0;
	    }
	}
    }

    out(-1);
    
    
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 0 ms 364 KB Output is correct
3 Correct 0 ms 364 KB Output is correct
4 Correct 0 ms 364 KB Output is correct
5 Correct 1 ms 364 KB Output is correct
6 Correct 1 ms 364 KB Output is correct
7 Correct 1 ms 384 KB Output is correct
8 Correct 1 ms 364 KB Output is correct
9 Incorrect 1 ms 364 KB Output isn't correct
10 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 0 ms 364 KB Output is correct
3 Correct 0 ms 364 KB Output is correct
4 Correct 0 ms 364 KB Output is correct
5 Correct 1 ms 364 KB Output is correct
6 Correct 1 ms 364 KB Output is correct
7 Correct 1 ms 384 KB Output is correct
8 Correct 1 ms 364 KB Output is correct
9 Incorrect 1 ms 364 KB Output isn't correct
10 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 31 ms 2408 KB Output is correct
2 Correct 31 ms 2412 KB Output is correct
3 Correct 31 ms 2408 KB Output is correct
4 Correct 31 ms 2284 KB Output is correct
5 Correct 31 ms 2408 KB Output is correct
6 Correct 31 ms 2284 KB Output is correct
7 Correct 31 ms 2408 KB Output is correct
8 Correct 31 ms 2284 KB Output is correct
9 Incorrect 21 ms 1376 KB Output isn't correct
10 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 0 ms 364 KB Output is correct
3 Correct 0 ms 364 KB Output is correct
4 Correct 0 ms 364 KB Output is correct
5 Correct 1 ms 364 KB Output is correct
6 Correct 1 ms 364 KB Output is correct
7 Correct 1 ms 384 KB Output is correct
8 Correct 1 ms 364 KB Output is correct
9 Incorrect 1 ms 364 KB Output isn't correct
10 Halted 0 ms 0 KB -