- #include <iostream> 
- #include <vector> 
- #include <random> 
- #include <ctime> 
-   
- // Function to perform Fisher-Yates Shuffle in place 
- void fisherYatesShuffle(std::vector<int>& arr) { 
-     // Initialize random number generator 
-     std::mt19937 rng(static_cast<long unsigned int>(time(0))); // Random seed based on time 
-   
-     // Loop through the array from last element to the second element 
-     for (int i = arr.size() - 1; i > 0; --i) { 
-         // Generate a random index between 0 and i 
-         std::uniform_int_distribution<int> dist(0, i); 
-         int j = dist(rng); 
-   
-         // Swap the elements at index i and index j 
-         std::swap(arr[i], arr[j]); 
-     } 
- } 
-   
- int main() { 
-     // Create a vector (array) of song IDs 
-     std::vector<int> arr = {10, 20, 30, 40, 50}; 
-   
-     std::cout << "Original Array: "; 
-     for (int num : arr) { 
-         std::cout << num << " "; 
-     } 
-     std::cout << "\n"; 
-   
-     // Shuffle the array using Fisher-Yates 
-     fisherYatesShuffle(arr); 
-   
-     std::cout << "Shuffled Array: "; 
-     for (int num : arr) { 
-         std::cout << num << " "; 
-     } 
-     std::cout << "\n"; 
-   
-     return 0; 
- } 
-   
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8cmFuZG9tPgojaW5jbHVkZSA8Y3RpbWU+CgovLyBGdW5jdGlvbiB0byBwZXJmb3JtIEZpc2hlci1ZYXRlcyBTaHVmZmxlIGluIHBsYWNlCnZvaWQgZmlzaGVyWWF0ZXNTaHVmZmxlKHN0ZDo6dmVjdG9yPGludD4mIGFycikgewogICAgLy8gSW5pdGlhbGl6ZSByYW5kb20gbnVtYmVyIGdlbmVyYXRvcgogICAgc3RkOjptdDE5OTM3IHJuZyhzdGF0aWNfY2FzdDxsb25nIHVuc2lnbmVkIGludD4odGltZSgwKSkpOyAvLyBSYW5kb20gc2VlZCBiYXNlZCBvbiB0aW1lCiAgICAKICAgIC8vIExvb3AgdGhyb3VnaCB0aGUgYXJyYXkgZnJvbSBsYXN0IGVsZW1lbnQgdG8gdGhlIHNlY29uZCBlbGVtZW50CiAgICBmb3IgKGludCBpID0gYXJyLnNpemUoKSAtIDE7IGkgPiAwOyAtLWkpIHsKICAgICAgICAvLyBHZW5lcmF0ZSBhIHJhbmRvbSBpbmRleCBiZXR3ZWVuIDAgYW5kIGkKICAgICAgICBzdGQ6OnVuaWZvcm1faW50X2Rpc3RyaWJ1dGlvbjxpbnQ+IGRpc3QoMCwgaSk7CiAgICAgICAgaW50IGogPSBkaXN0KHJuZyk7CiAgICAgICAgCiAgICAgICAgLy8gU3dhcCB0aGUgZWxlbWVudHMgYXQgaW5kZXggaSBhbmQgaW5kZXggagogICAgICAgIHN0ZDo6c3dhcChhcnJbaV0sIGFycltqXSk7CiAgICB9Cn0KCmludCBtYWluKCkgewogICAgLy8gQ3JlYXRlIGEgdmVjdG9yIChhcnJheSkgb2Ygc29uZyBJRHMKICAgIHN0ZDo6dmVjdG9yPGludD4gYXJyID0gezEwLCAyMCwgMzAsIDQwLCA1MH07CiAgICAKICAgIHN0ZDo6Y291dCA8PCAiT3JpZ2luYWwgQXJyYXk6ICI7CiAgICBmb3IgKGludCBudW0gOiBhcnIpIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgbnVtIDw8ICIgIjsKICAgIH0KICAgIHN0ZDo6Y291dCA8PCAiXG4iOwogICAgCiAgICAvLyBTaHVmZmxlIHRoZSBhcnJheSB1c2luZyBGaXNoZXItWWF0ZXMKICAgIGZpc2hlcllhdGVzU2h1ZmZsZShhcnIpOwogICAgCiAgICBzdGQ6OmNvdXQgPDwgIlNodWZmbGVkIEFycmF5OiAiOwogICAgZm9yIChpbnQgbnVtIDogYXJyKSB7CiAgICAgICAgc3RkOjpjb3V0IDw8IG51bSA8PCAiICI7CiAgICB9CiAgICBzdGQ6OmNvdXQgPDwgIlxuIjsKCiAgICByZXR1cm4gMDsKfQo=