#include <stdio.h>
int cmp(int x, int y)
{
return x > y;
}
void swap(int *x, int *y)
{
int tmp = *x;
*x = *y;
*y = tmp;
}
int main(void)
{
int a[] = {3, 1, 4, 1, 5, 9, 2, 6, 5};
size_t n = sizeof a / sizeof a[0];
int total = 0;
for (size_t i = 0; i < n - 1; ++i) {
for (size_t j = 0; j < n - 1 - i; ++j) {
if (cmp(a[j], a[j + 1])) {
swap(&a[j], &a[j + 1]);
total++;
}
}
}
for (size_t i = 0; i < n; ++i) {
}
printf("swap count = %d\n", total
);
return 0;
}
CiNpbmNsdWRlIDxzdGRpby5oPgoKaW50IGNtcChpbnQgeCwgaW50IHkpCnsKICAgIHJldHVybiB4ID4geTsKfQoKdm9pZCBzd2FwKGludCAqeCwgaW50ICp5KQp7CiAgICBpbnQgdG1wID0gKng7CiAgICAqeCA9ICp5OwogICAgKnkgPSB0bXA7Cn0KCmludCBtYWluKHZvaWQpCnsKICAgIGludCBhW10gPSB7MywgMSwgNCwgMSwgNSwgOSwgMiwgNiwgNX07CiAgICBzaXplX3QgbiA9IHNpemVvZiBhIC8gc2l6ZW9mIGFbMF07CiAgICBpbnQgdG90YWwgPSAwOwoKICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbiAtIDE7ICsraSkgewogICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgbiAtIDEgLSBpOyArK2opIHsKICAgICAgICAgICAgaWYgKGNtcChhW2pdLCBhW2ogKyAxXSkpIHsKICAgICAgICAgICAgICAgIHN3YXAoJmFbal0sICZhW2ogKyAxXSk7CiAgICAgICAgICAgICAgICB0b3RhbCsrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbjsgKytpKSB7CiAgICAgICAgcHJpbnRmKCIlZCAiLCBhW2ldKTsKICAgIH0KICAgIHByaW50ZigiXG4iKTsKCiAgICBwcmludGYoInN3YXAgY291bnQgPSAlZFxuIiwgdG90YWwpOwoKICAgIHJldHVybiAwOwp9Cg==