#include <iostream>
using namespace std;
float TFrm_Main::GetMemoryTotalPhys()
{
TMemoryStatus *ms = new TMemoryStatus(); //this is in borland
GlobalMemoryStatus(ms);
int dw_Len = ms->dwLength;
int dw_memLoad = ms->dwMemoryLoad;
unsigned long dw_TotPhyMem = ((ms->dwTotalPhys/1024.0)); //1024 is used to convert byte to kilobyte here
unsigned long dw_AvailPhyMem = ((ms->dwAvailPhys/1024.0));
unsigned long dw_TotPgFile = ((ms->dwTotalPageFile/1024.0));
unsigned long dw_AvailPgfile = ((ms->dwAvailPageFile/1024.0));
unsigned long dw_TotVirMem = ((ms->dwTotalVirtual/1024.0));
unsigned long dw_AvailVirMem = ((ms->dwAvailVirtual/1024.0));
unsigned long tot_Commit = (dw_TotPgFile/1024.0);
unsigned long use_Commit = ((dw_TotPgFile-dw_AvailPgfile)/1024.0);
delete ms;
return((use_Commit/(float)tot_Commit)*100.0);
}
int main() {
int lP;
int lM;
int status;
int suma;
int i, j, k;
const int max = 150;
cin >> lP;
for (i = 1; i <= lP; i++ )
{
cin >> lM;
char tablica [max] [max];
for (j = 1; j <= lM; j++)
{
for (k = 1; k <= lM; k++)
{
cin >> tablica[ j ] [ k ];
}
}
suma = 0;
for(j = 1; j <= lM; j++)
{
status = 1;
for (k = 1; k <= lM; k++)
{
if (j + k <= lM)
{
if (tablica[k][j+k] == '0')
status = 0;
}
else if (tablica[k][k+j-lM] == '0')
status = 0;
}
if(status == 1)
suma = suma + 1;
}
cout << suma << endl;
}
cout << GetMemoryTotalPhys();
return 0;
}