#include #include #include using namespace std; // функция возвращает true, если векторы из одинаковых элементов bool TestPermut(const vector& v1, const vector& v2) { auto v1_copy = v1; auto v2_copy = v2; std::sort(v1_copy.begin(), v1_copy.end()); std::sort(v2_copy.begin(), v2_copy.end()); return v1_copy == v2_copy; } int main() { int n; cin >> n; vector v1, v2; v1.reserve(n); v2.reserve(n); for (int i = 0; i < n; ++i) { v1.push_back(rand()); v2.push_back(rand()); } // оба вектора случайны, вряд ли они совпадут cout << "Random vector matches? "s << flush; cout << (TestPermut(v1, v2) ? "Yes"s : "No"s) << endl; // делаем один перестановкой другого явным образом v2 = v1; random_shuffle(v2.begin(), v2.end()); cout << "Permuted vector matches? "s << flush; cout << (TestPermut(v1, v2) ? "Yes"s : "No"s) << endl; }