Advertisement
Guest User

Untitled

a guest
Mar 30th, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.93 KB | None | 0 0
  1. import java.util.*;
  2. import java.io.*;
  3.  
  4. /**
  5.  * Created by roman on 30.03.17.
  6.  */
  7. public class Solver {
  8.     static int stringLength;
  9.     static int numberOfOpeningBrackets;
  10.     static ArrayList<Integer> openingBrackets;
  11.     static int[][] dp;
  12.  
  13.     public static void main(String[] args) {
  14.         Scanner scanner = new Scanner(System.in);
  15.  
  16.         int numberOfTests = scanner.nextInt(); //считываем количество тестов
  17.         for (int i = 0; i < numberOfTests; i++) {
  18.  
  19.             stringLength = scanner.nextInt() * 2; // длина скобочной последовательности
  20.             numberOfOpeningBrackets = scanner.nextInt(); // количество открывающих скобок
  21.             openingBrackets = new ArrayList<>(numberOfOpeningBrackets);
  22.  
  23.             for (int j = 0; j < numberOfOpeningBrackets; j++) { //считываем открывающие скобки
  24.                 openingBrackets.add(scanner.nextInt());
  25.             }
  26.  
  27.             //Входные данные для текущего теста считаны, здесь начинается алгоритм решения:
  28.  
  29.             int[][] dp = new int[stringLength][stringLength + 1]; //создаем наш массив для динамики
  30.             System.out.println(method(0, 0));
  31.         }
  32.     }
  33.  
  34.     public static int method(int index, int balane) {
  35.         if (index == stringLength) {
  36.             if (balane == 0)
  37.                 return 1;
  38.             else
  39.                 return 0;
  40.         }
  41.  
  42.         if (!openingBrackets.contains(index)) {
  43.             if (balane > 0) {
  44.                 return method(index + 1, balane - 1) + method(index + 1, balane + 1);
  45.             } else if (balane == 0) {
  46.                 return method(index + 1, balane + 1);
  47.             }
  48.         } else {
  49.             return method(index + 1, balane + 1);
  50.         }
  51.  
  52.         return 0;
  53.     }
  54.  
  55.  
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement