But I'm getting timeout..So i need to speed up my algorithm. How improve my code or write new better code?
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
class Main {
public static void main (String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int cases=0;
int cases2=0;
String slowo=" ";
String word=" ";
int p=0;
cases=Integer.parseInt(br.readLine());
for(int i=0; i<cases; i++) {
if(slowo!=null && slowo.length()>0) {
slowo=br.readLine();
p=slowo.indexOf(" ");
cases2=Integer.parseInt(slowo.substring(0,p));
word=slowo.substring(p+1);
for(int k=0; k<cases2; k++) {
slowo=br.readLine();
slowo=decode(slowo);
int pom=0;
int x=0;
while(pom!=-1 && x<slowo.length()) {
pom=word.indexOf(slowo.charAt(x),pom);
x++;
}
if(pom!=-1) System.out.println("YES");
else System.out.println("NO");
}
}
System.out.print("\r");
}
}
public static String decode(String W) {
char[] array=W.toCharArray();
StringBuilder ret=new StringBuilder("");
int pom=0;
for(int i=0; i<array.length; i++)
if(i%2==0) pom=array[i];
else for(int k=0; k<pom; k++) ret.append(array[i]);
return ret.toString();
}
}
















