Не могу сделать так чтобы выводился 0 если не проходит тест в цикле.Прошу помочь
Кинотеатр имеет n рядов, каждый ряд состоит из m посадочных мест (n и m не превышают 20). В двумерной матрице хранится информация о проданных билетах, цифра 1 означает, что билет на это место уже продан, цифра 0 означает, что место доступно. Вы хотите купить k билетов на соседние места в том же ряду. Выясните, можно ли это сделать.
Формат входных данных
На входе программа получает количество N рядов и m посадочных мест. Затем есть n строк, каждая из которых содержит m чисел (0 или 1), разделенных пробелами. Последняя строка содержит число k.
Формат выходных данных
Программа должна вывести номер ряда с k последовательными доступными местами. Если имеется несколько рядов с k доступными местами, выведите первый ряд с этими местами. Если такой строки нет, выведите число 0.
Sample Input 1:
3 4 0 1 0 1 1 1 0 1 1 0 0 1 2Sample Output 1:
3Sample Input 2:
3 3 0 1 0 1 0 0 1 1 1 3Sample Output 2:
0
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int[][] cinemaArr = new int[n][m];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cinemaArr[i][j] = sc.nextInt();
}
}
int numbersOfTickets = sc.nextInt();
for (int i = 0; i < n; i++) {
int counter = 0;
for (int j = 0; j < m - 1; j++) {
if (counter == numbersOfTickets) {
System.out.println(i + 1);
break;
} else if (cinemaArr[i][j] == 0 && cinemaArr[i][j] == cinemaArr[i][j + 1]) {
counter += 2;
} else if (cinemaArr[i][j + 1] == 1) {
counter = 0;
}
}
}
}
}
Ответы (2 шт):
for (int i = 0; i < n; i++) {
int counter = 0;
for (int j = 0; j < m; j++) {
counter = (cinemaArr[i][j] == 0)? (counter + 1) : 0;
if (counter == numbersOfTickets) {
System.out.println(i + 1);
return;
}
}
}
System.out.println(0);
Чтобы выводить ноль при отсутствии мест, можно использовать нулевой номер ряда. При успешном поиске он заменится на реальный номер.
int goodrow = 0;
for (int i = 0; i < n && goodrow == 0; i++) {
int counter = 0;
for (int j = 0; j < m; j++) {
if (cinemaArr[i][j] == 1)
counter = 0;
else {
counter += 1;
if (counter == numbersOfTickets) {
goodrow = i + 1;
break;
}
}
}
}
println(goodrow);