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 весии на задача които минават проверките.
Мисля че на този етап по-оплетен код е по-полезен от гледна точка упражняване на логика и подход.
Не съм съгласна, че оплетеният код е полезен за упражняване на логиката и подхода.
Твоят подход в много правилен:
В бъдещите задачи ще се старая да прилагам този подход на изключване на неработещи варианти още в началото.
Още веднъж благодаря.