#include <bits/stdc++.h>
using namespace std;
// Function to sort binary array in linear time
int Partition(int A[], int n)
{
int j = 0;
// each time we encounter a 0, j is incremented and
// 0 is placed before the pivot
for (int i = 0; i < n; i++)
{
if (A[i] %2==0)
{
swap(A[i], A[j]);
j++;
}
}
}
// main function
int main()
{
int A[] = { 2, 10, 3, 7, 8, 9, 10, 17 };
int n = sizeof(A)/sizeof(A[0]);
Partition(A, n);
// print the rearranged array
for (int i = 0 ; i < n; i++)
cout << A[i] << " ";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKLy8gRnVuY3Rpb24gdG8gc29ydCBiaW5hcnkgYXJyYXkgaW4gbGluZWFyIHRpbWUKaW50IFBhcnRpdGlvbihpbnQgQVtdLCBpbnQgbikKewogICAgCiAgICBpbnQgaiA9IDA7CiAKICAgIC8vIGVhY2ggdGltZSB3ZSBlbmNvdW50ZXIgYSAwLCBqIGlzIGluY3JlbWVudGVkIGFuZAogICAgLy8gMCBpcyBwbGFjZWQgYmVmb3JlIHRoZSBwaXZvdAogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgaWYgKEFbaV0gJTI9PTApCiAgICAgICAgewogICAgICAgICAgICBzd2FwKEFbaV0sIEFbal0pOwogICAgICAgICAgICBqKys7CiAgICAgICAgfQogICAgfQp9CiAKLy8gbWFpbiBmdW5jdGlvbgppbnQgbWFpbigpCnsKICAgIGludCBBW10gPSB7IDIsIDEwLCAzLCA3LCA4LCA5LCAxMCwgMTcgfTsKICAgIGludCBuID0gc2l6ZW9mKEEpL3NpemVvZihBWzBdKTsKIAogICAgUGFydGl0aW9uKEEsIG4pOwogCiAgICAvLyBwcmludCB0aGUgcmVhcnJhbmdlZCBhcnJheQogICAgZm9yIChpbnQgaSA9IDAgOyBpIDwgbjsgaSsrKQogICAgICAgIGNvdXQgPDwgQVtpXSA8PCAiICI7CiAKICAgIHJldHVybiAwOwp9Cg==