CSES - Datatähti 2017 alku - Results
Submission details
Task:Järjestys
Sender:Shrike
Submission time:2016-10-07 11:39:20 +0300
Language:C++
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.06 s1details
#20.06 s2details
#3--3details

Code

#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>
#include <string>
#include <sstream>

using namespace std;


int atoi (string c) {
	stringstream s;
	int i;
	s << c;
	s >> i;
	return i;
}
 
template <typename T, typename U>
vector<int> 
pancake_sort(T first, T last, U order)
{
	vector<int> prod;
	if (distance(first, last) < 2)
		return prod; 
 
	for (; first != last; --last) {
		T mid = max_element(first, last, order);
		if (mid == last - 1)
			continue;
		if (first != mid) {
			reverse(first, mid + 1);
			prod.push_back(distance(first, mid + 1));
		}
		reverse(first, last);
		prod.push_back(distance(first, last));
	}
	return prod;
}
 
template <typename T>
vector<int>
pancake_sort(T first, T last)
{
	return pancake_sort(first, last, less<typename iterator_traits<T>::value_type>());
}

int
main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	string buf, i;
	vector<int> fin;
	getline (cin, i);
	vector<int> Vec(atoi (i));
	getline (cin, buf);
	istringstream ssin(buf);
        int input;
        while(ssin >> input) {
            Vec.push_back(input);
        }
;
	fin = pancake_sort (Vec.begin(), Vec.end());
	cout << fin.size() << "\n";
	copy(fin.begin(), fin.end(), ostream_iterator<int>(cout, " "));
	cout << "\n";
	return 0;
}

Test details

Test 1

Group: 1

Verdict:

input
10
9 3 4 7 6 5 10 2 8 1

correct output
32
10 10 9 10 9 8 7 9 4 2 1 4 5 2...

user output
21
17 20 14 19 7 18 14 17 3 14 12...

Test 2

Group: 2

Verdict:

input
1000
650 716 982 41 133 1000 876 92...

correct output
3984
207 207 206 207 128 127 126 12...

user output
2976
1006 2000 904 1999 1964 1998 1...

Test 3

Group: 3

Verdict:

input
100000
94703 47808 62366 31885 7091 8...

correct output
399956
98676 98676 98675 98676 62994 ...

user output
(empty)