Задача:
Дана целочисленная матрица [latex][a_{ij}, i, j =1, … n][/latex]. Получить [latex]b_1, …, b_n[/latex], где [latex]b_i=\prod_ja_{ji}[/latex] для все таких [latex]j[/latex], что [latex]1 < a_{ji} <= n[/latex];
Тесты:
| [latex]ixj[/latex] | a_{ij} | [latex]b_1, …, b_n[/latex] | Комментарий | 
| 3×3 | [latex]\begin{pmatrix}1 & 2 & 1 \\ 2 & 1 & 2 \\ 2 & 2 & 1\end{pmatrix}[/latex] | 4, 4, 2 | Пройден | 
| 4×3 | [latex]\begin{pmatrix}2 & 4 & 8 \\3 & 1 & 5 \\6 & 7 & 8\\1 & 4 & 1\end{pmatrix}[/latex] | 6, 4, * | Пройден | 
| 2×3 | [latex]\begin{pmatrix}2 & 4 & 3\\ 4 & 2 & 3\end{pmatrix}[/latex] | 2, 2, * | Пройден | 
Код:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #include <iostream> using namespace std; int main() { 	int n,m; 	cin >> n; 	cin >> m; 	int a[n][m]; 	int b[n]; 	for(int i=0; i < n; i++) 	{ 		for(int j=0; j < m; j ++) 			cin >> a[i][j]; 	}	 	for(int i=0; i < m; i++) 	{ 		b[i]=1; 		for(int j=0; j < m; j++) 		{ 			if((a[j][i] <= n)&&(a[j][i] > 1)) 				b[i]*=a[j][i]; 		} 	} 	for(int i=0; i < m; i++) 	{ 		if(b[i]!=1) 			cout << b[i] << " "; 		else 			cout << "* "; 	} 	return 0; } | 
Для начала вводим размерность массива [latex]a[/latex]. Затем с помощью цикла [latex]for[/latex] заполняем этот массив.
Теперь каждому элементу массива [latex]b[/latex] задаем значение [latex]1[/latex]. Находим произведение таких элементов матрицы [latex]a_{ji}[/latex], которе бы удовлетворяли условию задачи, а именно для все таких [latex]j[/latex], что [latex]1 < a_{ji} <= n[/latex]. В итоге если в массиве [latex]b[/latex] остается элемент с значением [latex]1[/latex], выводим символ [latex]*[/latex], так как нельзя найти произведение. Выводим значения массива [latex]b[/latex].
Код Java
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | import java.util.*; import java.lang.*; import java.io.*; class Depo { 	public static void main (String[] args) throws java.lang.Exception 	{ 		int n, m; 		Scanner in = new Scanner(System.in); 		n= in.nextInt(); 		m= in.nextInt(); 		int[][] a= new int[n][m]; 		int[] b= new int[n]; 		for(int i=0; i < n; i++){ 			for(int j=0; j < m; j ++) 				a[i][j]=in.nextInt(); 		} 		for(int i=0; i < m; i++){ 			b[i]=1; 			for(int j=0; j < m; j++){ 				if((a[j][i] <= n)&&(a[j][i] > 1)) 					b[i]*=a[j][i]; 			} 		} 		for(int i=0; i < m; i++){ 			if(b[i]!=1) 				System.out.printf(b[i] + " "); 			else 				System.out.printf("* "); 			} 	} } | 
