#include <iostream>
#include <ctime>
#include <vector>
#include <algorithm>
using namespace std;
//int perm() {
// int data[4] = { 5,2,1,4 };
// sort(data, data + 4);
// do {
// for (int i = 0; i < 4; ++i) {
// cout << data[i] << " ";
// }
// cout << endl;
// } while (next_permutation(data, data + 4));
//}
int num = 0;
int Data[] = { 1,2,3,4,5,6,7,8,9,10,15,30,87,12 };
int Perm(int begin, int end) {
int i;
if (begin == end) {
num++;
}
else {
for (int i = begin; i <= end; ++i) {
swap(Data[begin], Data[i]);
Perm(begin + 1, end);
}
}
return num;
}
//class Solution {
//private:
// vector<int> p;
// vector<bool>used;
// vector<vector<int>>q;
//public:
// void GetPerm(vector<int>& nums, int Index, vector<int>& p) {
// if (Index == nums.size()) {
// q.push_back(p);
// return;
// }
// for (int i = 0; i < nums.size(); ++i) {
// if (!used[i]) {
// used[i] = true;
// p.push_back(nums[i]);
// GetPerm(nums, Index + 1, p);
// p.pop_back();
// used[i] = false;
// }
// }
// return;
// }
//public:
// int Perm(vector<int>& nums) {
// used = vector<bool>(nums.size(), false);
// p.clear();
// q.clear();
// GetPerm(nums, 0, p);
// return q.size();
// }
//};
int main() {
/*vector<int> arr(10,0);
for (int i = 0; i < 10; ++i) {
arr[i] = i + 1;
}
int num = Solution().Perm(arr);*/
Perm(0, 10);
cout << num << endl;
system("pause");
}