|  | @@ -0,0 +1,28 @@
 | 
	
		
			
				|  |  | +#include <algorithm>
 | 
	
		
			
				|  |  | +#include <vector>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#include "function.h"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +using namespace std;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +bool isswap(vector<int> &arr, size_t beg, size_t end) {
 | 
	
		
			
				|  |  | +  for (size_t i = beg; i < end; ++i) {
 | 
	
		
			
				|  |  | +    if (arr[i] == arr[end])
 | 
	
		
			
				|  |  | +      return false;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  return true;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +void permutation(vector<int> &arr, size_t pos, size_t len, vector<vector<int>> &res){
 | 
	
		
			
				|  |  | +  if (pos == len) {
 | 
	
		
			
				|  |  | +    res.push_back(arr);
 | 
	
		
			
				|  |  | +    return;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +  for (size_t i = pos; i <= len; ++i) {
 | 
	
		
			
				|  |  | +    if (isswap(arr, pos, i) == true) {
 | 
	
		
			
				|  |  | +      swap(arr[pos], arr[i]);
 | 
	
		
			
				|  |  | +      permutation(arr. pos + 1, len, res);
 | 
	
		
			
				|  |  | +      swap(arr[pos], arr[i]);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 |