10.Lady_Bugs
Решението гърми на проверка 9 и 10. Тествах какво ли не. Възможно е да се дължи на ограниченията в условието на задачата.
Доста съм зациклил и може да не виждам очевидна грешка.
import java.lang.reflect.Array;
import java.util.*;
import java.util.stream.Collectors;
public class tttt {
public static void main(String[] args) {
Scanner scanner = new Scanner( System.in );
int s = Integer.parseInt( scanner.nextLine() );
String[] arr_i = scanner.nextLine().split( " " );
int[] lb = new int[s];
for (int l = 0; l < lb.length; l++) {
if (Arrays.asList(arr_i).contains( Integer.toString( l ) )) lb[l] = 1;
}
String str;
while (!(str = scanner.nextLine()).equals("end")) {
String[] arr = str.split( " " );
int ind = Integer.parseInt( arr[0] );
String dir = arr[1];
int len = Integer.parseInt( arr[2] );
if (ind < 0 || ind >= s || lb[ind] == 0 || len == 0) continue;
lb[ind] = 0;
for (int x = 0; x < lb.length; x++) {
if (dir.equals("right") && (ind + len + x) >= 0 && (ind + len + x) < s && lb[ind + len + x] == 0) {
lb[ind + len + x] = 1;
break;
} else if(dir.equals("right") && (ind + len + x) >= 0 && (ind + len + x) < s && lb[ind + len + x] == 1) {
continue;
} else if (dir.equals("left") && (ind - (len + x)) >= 0 && (ind - (len + x)) < s && lb[ind - (len + x)] == 0) {
lb[ind - (len + x)] = 1;
break;
} else if (dir.equals("left") && (ind - (len + x)) >= 0 && (ind - (len + x)) < s && lb[ind - (len + x)] == 1) {
continue;
} else {
break;
}
}
}
for (int v : lb) System.out.print( v + " " );
}
}
Благодаря за споделеното решение. Аз съм very beginner и не мога да се справя сама. Прегледах много предложени решения, но ми се струваха объркани и оплетени. Твойто е на има-няма 30 реда (без да броим празни и скоби) и е супер ясно. Поздрави за което!!!
Само смених имената на променливите, за да разбирам, като чета кода (lb = fieldArray, arr_i = lbArray и т.н...)
Радвам се че кода ти е полезен. По мое мнение колко е оптимален кода зависи много от това как си представяш решението веднага след като прочетеш условието. Щом ми хрумне нещо веднага го подлагам на критика дали е оптимално. Имам по 4, 5 весии на задача които минават проверките.
Мисля че на този етап по-оплетен код е по-полезен от гледна точка упражняване на логика и подход.
Не съм съгласна, че оплетеният код е полезен за упражняване на логиката и подхода.
Твоят подход в много правилен:
В бъдещите задачи ще се старая да прилагам този подход на изключване на неработещи варианти още в началото.
Още веднъж благодаря.