#include <cstdio>
#include <algorithm>
#include <functional>

using namespace std;

#define forn(i, n) for (int i = 0; i < (int)(n); i++)

void out( int n, int *v ) {
	forn(i, n)
		printf("%d ", v[i]);
	puts("");
}

void test1() {
	function<bool(int, int)> cmp = []( int a, int b ) {
		return a > b;
	};
	int n = 10, v[n] = {};
	forn(i, n)
		v[i] = i;
	sort(v, v + n, cmp);
	out(n, v);
}

void test2() {
	auto cmp = []( int a, int b ) {
		return a > b;
	};
	int n = 10, v[n] = {};
	forn(i, n)
		v[i] = i;
	sort(v, v + n, cmp);
	out(n, v);
}

void test3() {
	int n = 10, v[n] = {};
	forn(i, n)
		v[i] = i;
	sort(v, v + n, []( int a, int b ) {
		return a > b;
	}); // анонимной функцией
	out(n, v);
}

int main() {
	test1();
	test2();
	test3();
}