#include <algorithm>
#include <iterator>
#include <iostream>
#include <cstdlib>
#include <ctime>
int main () {
std::srand(std::time(NULL)); // initialize random seed
// shuffle a 2D array
int arr[3][3] = {
{0, 1, 2},
{3, 4, 5},
{6, 7, 8}
};
// Shuffle from the first member to the last member.
// The array is interpreted as a 9 element 1D array.
std::random_shuffle(&arr[0][0], &arr[2][3]);
// print the result
for (int row = 0; row < 3; ++row) {
for (int col = 0; col < 3; ++col) {
std::cout << arr[row][col] << ' ';
}
std::cout << std::endl;
}
return 0;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGl0ZXJhdG9yPgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxjc3RkbGliPgojaW5jbHVkZSA8Y3RpbWU+CgppbnQgbWFpbiAoKSB7CiAgICBzdGQ6OnNyYW5kKHN0ZDo6dGltZShOVUxMKSk7IC8vIGluaXRpYWxpemUgcmFuZG9tIHNlZWQKCiAgICAvLyBzaHVmZmxlIGEgMkQgYXJyYXkKICAgIGludCBhcnJbM11bM10gPSB7CiAgICAgICAgezAsIDEsIDJ9LAogICAgICAgIHszLCA0LCA1fSwKICAgICAgICB7NiwgNywgOH0KICAgIH07CgogICAgLy8gU2h1ZmZsZSBmcm9tIHRoZSBmaXJzdCBtZW1iZXIgdG8gdGhlIGxhc3QgbWVtYmVyLgogICAgLy8gVGhlIGFycmF5IGlzIGludGVycHJldGVkIGFzIGEgOSBlbGVtZW50IDFEIGFycmF5LgogICAgc3RkOjpyYW5kb21fc2h1ZmZsZSgmYXJyWzBdWzBdLCAmYXJyWzJdWzNdKTsKCiAgICAvLyBwcmludCB0aGUgcmVzdWx0CiAgICBmb3IgKGludCByb3cgPSAwOyByb3cgPCAzOyArK3JvdykgewogICAgICAgIGZvciAoaW50IGNvbCA9IDA7IGNvbCA8IDM7ICsrY29sKSB7CiAgICAgICAgICAgIHN0ZDo6Y291dCA8PCBhcnJbcm93XVtjb2xdIDw8ICcgJzsKICAgICAgICB9CiAgICAgICAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsKICAgIH0KICAgIHJldHVybiAwOwp9