Halo, tu nowicjusz. Przekroczono limit czasu, wszystkie przykładowe testy przechodzą. Da się to jakoś usprawnić? Czy pomysł mizerny? Nie mam pewności też co do tych godzin, czy zapisałem wszystkie możliwości.. Proszę o jakieś wskazówki
https://pl.spoj.com/problems/CHAOS/
import java.text.SimpleDateFormat;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.regex.Pattern;
import java.lang.*;****
class Main
{
public static final LocalTime[] palidrom={
LocalTime.parse("00:01"),
LocalTime.parse("00:02"),
LocalTime.parse("00:03"),
LocalTime.parse("00:04"),
LocalTime.parse("00:05"),
LocalTime.parse("00:06"),
LocalTime.parse("00:07"),
LocalTime.parse("00:08"),
LocalTime.parse("00:09"),
LocalTime.parse("00:11"),
LocalTime.parse("00:22"),
LocalTime.parse("00:33"),
LocalTime.parse("00:44"),
LocalTime.parse("00:55"),
LocalTime.parse("01:01"),
LocalTime.parse("02:02"),
LocalTime.parse("03:03"),
LocalTime.parse("04:04"),
LocalTime.parse("05:05"),
LocalTime.parse("06:06"),
LocalTime.parse("07:07"),
LocalTime.parse("08:08"),
LocalTime.parse("09:09"),
LocalTime.parse("10:01"),
LocalTime.parse("11:11"),
LocalTime.parse("12:21"),
LocalTime.parse("13:31"),
LocalTime.parse("14:41"),
LocalTime.parse("15:51"),
LocalTime.parse("20:02"),
LocalTime.parse("21:12"),
LocalTime.parse("22:22"),
LocalTime.parse("23:32"),
LocalTime.parse("00:00")
};
public static void main (String[] args) throws java.lang.Exception
{
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
Pattern pat=Pattern.compile("[0-2][0-9]:[0-5][0-9]");
for (int i = 0; i <=n ; i++) {
String hour=sc.nextLine();
if (pat.matcher(hour).matches()){
LocalTime input=LocalTime.parse(hour);
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm");
for (int j = 0; j <palidrom.length-1 ; j++) {
if (input.isBefore(palidrom[j])){
System.out.println(palidrom[j].format(dtf));
break;
}else if (input.equals(palidrom[j])){
System.out.println(palidrom[j+1].format(dtf));
break;
}
else if (input.isAfter(palidrom[palidrom.length-2])||input.equals(palidrom[palidrom.length-2])){
System.out.println(palidrom[palidrom.length-1].format(dtf));
break;
}
}
}
}
}
}