Превышено ограничение по времени для следующего кода. Это займет 6 секунд, чтобы быть выполненным. Как я могу сократить время выполнения? Вопрос для следующей программы: https://www.codechef.com/problems/SUBMATCH
import java.util.Scanner;
public class Sub_Match
{
static String z = "";
static int length = 0;
static String check;
static int max = 0;
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
Sub_Match ob = new Sub_Match();
int t = scan.nextInt();
int ar[] = new int[t];
for(int i=0;i<t;i++)
{
check = scan.next();
int n = scan.nextInt();
String arr[] = new String[n];
for(int j=0;j<n;j++)
{
arr[j] = scan.next();
length = length + arr[j].length();
}
ob.check(arr, "");
ar[i] = max;
max = 0;
z = "";
length = 0;
}
for(int i=0;i<t;i++)
System.out.println(ar[i]);
}
static void check(String arr[], String y)
{
if(check.contains(y) && y.length()<=length)
{
if(y.length()>max)
max = y.length();
for(int i=0;i<arr.length;i++)
{
y = y + arr[i];
check(arr, y);
y = y.substring(0, y.length()-arr[i].length());
}
}
}
}