Vestigium означает «след» на латыни.
След квадратной матрицы - это сумма значений на главной диагонали (которая идет от верхнего левого угла до нижнего правого ).
Квадратная матрица N-на-N является латинским квадратом, если каждая ячейка содержит одно из N различных значений, и никакое значение не повторяется в строке или столбце. В этой задаче мы будем иметь дело только с «натуральными латинскими квадратами», в которых значения N являются целыми числами от 1 до N.
Учитывая матрицу, которая содержит только целые числа от 1 до N, мы хотим вычислить ее отследить и проверить, является ли это естественным латинским квадратом. Чтобы дать некоторую дополнительную информацию, вместо того, чтобы просто сказать нам, является ли матрица натуральным латинским квадратом или нет, вычислите число строк и количество столбцов, которые содержат повторяющиеся значения.
import java.io.*;
import java.util.*;
class Solution
{
public static void main(String args[])
{
Scanner sc=new Scanner(new BufferedReader(new InputStreamReader(System.in)));
int T,N,matrix[][],dupCheck[];
int i,j,k,r,c,Sum;
String inMat[];
dupCheck=new int[100];
T=Integer.parseInt(sc.nextLine());
for(k=1;k<=T;k++,matrix=null)
{
N=Integer.parseInt(sc.nextLine());
matrix=new int[N][N];
for(i=0,r=0;i<N;i++)
{
inMat=(sc.nextLine()).split(" ");
Arrays.fill(dupCheck,0);
for(j=0;j<N;j++)
{
matrix[i][j]=Integer.parseInt(inMat[j]);
dupCheck[matrix[i][j]]++;
}
for(j=0;j<100;j++)
{
if(dupCheck[j]>1)
{
r++;
break;
}
}
}
for(i=0,Sum=0;i<N;i++) Sum+=matrix[i][i];
for(i=0,c=0;i<N;i++)
{
Arrays.fill(dupCheck,0);
for(j=0;j<N;j++)
{
dupCheck[matrix[j][i]]++;
}
for(j=0;j<100;j++)
{
if(dupCheck[j]>1)
{
c++;
break;
}
}
}
System.out.println("Case #"+k+": "+Sum+" "+r+" "+c);
}
}
}
Он работает нормально в IDE, а также дает правильный ответ. Но при отправке я получаю сообщение об ошибке выполнения.