#include <iostream>
#include <bitset>
#include <algorithm>
#include <ctime>
typedef std::bitset<7> Bits;
void my_rand (Bits &_bits) {_bits = rand () % 100;}
void bits_out (const Bits &_bits) {std::cout << _bits.to_ulong () << "\t-\t" << _bits << std::endl;}
bool comp (const Bits &_bits1, const Bits &_bits2) {return _bits1.count () < _bits2.count ();}
int main ()
{
srand (time (NULL));
int size;
std::cout << "Введите количество элементов: ", std::cin >> size;
Bits mas [size];
std::for_each (mas, mas + size, &my_rand);
std::cout << "Исходный массив: " << std::endl;
std::for_each (mas, mas + size, &bits_out);
std::cout << std::endl;
std::sort (mas, mas + size, &comp);
std::cout << "Отсортировынный массив: " << std::endl;
std::for_each (mas, mas + size, &bits_out);
std::cout << std::endl;
return 0;
}