Vaeb

Combinations w/ Index Requirements

Mar 2nd, 2016
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.49 KB | None | 0 0
  1. public class Permu {
  2.    
  3.     public static void swap(int i1, int i2, int[][] digits) {
  4.         int[] oldV1 = digits[i1];
  5.         digits[i1] = digits[i2];
  6.         digits[i2] = oldV1;
  7.     }
  8.    
  9.     public static void recurse(int n, int[][] digits) {
  10.         if (n == 1) {
  11.             boolean Approved = true;
  12.             for (int i = 0; i < digits.length; i++) {
  13.                 int[] v = digits[i];
  14.                 boolean Approved2 = false;
  15.                 for (int i2 = 1; i2 < v.length; i2++) {
  16.                     if (v[i2] == i) {
  17.                         Approved2 = true;
  18.                     }
  19.                 }
  20.                 if (Approved2 == false) {
  21.                     Approved = false;
  22.                     break;
  23.                 }
  24.             }
  25.             if (Approved == true) {
  26.                 System.out.println(digits.length);
  27.                 for (int i = 0; i < digits.length; i++) {
  28.                     System.out.print(digits[i][0]);
  29.                 }
  30.                 System.out.print("\n");
  31.             }
  32.             return;
  33.         }
  34.         for (int i = 0; i < n-1; i++) {
  35.             recurse(n-1, digits);
  36.             if (n % 2 == 0) {
  37.                 swap(i, n-1, digits);
  38.             } else {
  39.                 swap(0, n-1, digits);
  40.             }
  41.         }
  42.         recurse(n-1, digits);
  43.     }
  44.    
  45.     public static void main(String[] args) {
  46.         int[][] Digits = new int[][]{{2, 0, 3}, {9, 2, 3}, {7, 1}, {3, 0, 1, 2, 3}}; //Format: {{Value, AllowedIndex, AllowedIndex2...}, {Value, AllowedIndex, AllowedIndex2...}...}
  47.        
  48.         recurse(4, Digits);
  49.     }
  50. }
Add Comment
Please, Sign In to add comment