#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();
}