What is wrong with my code:
#include <bits/stdc++.h>
using namespace std;
int arr[17][17]={{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,},{0,0,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,},{0,1,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,},{0,1,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,},{0,0,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,},{0,1,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,},{0,0,1,0,0,1,0,0,1,0,0,0,0,0,1,0,0,},{0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,1,0,},{0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,},{0,1,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,},{0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,},{0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,0,},{0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,1,},{0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,0,},{0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,1,},{0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,1,},{0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,1,0,}
},color[17]={0},dist[17]={0},parent[17];
void bfs(int start, int t)
{
int j, temp, i;
queue<int> q;
q.push(start);
dist[start] = 0;
int flag = 0;
while (q.empty() == 0)
{
temp = q.front();
q.pop();
color[temp] = 1;
for (i = 1; i < 17; i++)
{
if (color[i] == 0 && arr[temp][i] == 1)
{
q.push(i);
dist[i] = dist[temp] + 1;
if (i == t)
{
flag = 1;
break;
}
}
}
if (flag == 1)
break;
}
}
int main()
{
int t, op = 1;
cin >> t;
while (t--)
{
int i, j, k = 0;
int crr[17], a, b = 10, c = 0, d, lz = 0, cz = 0;
for (i = 1; i < 17; i++)
{
cin >> b;
if (i < 9 && b == 1)
{
crr[++k] = i;
lz++;
}
if (i > 8 && b == 0)
{
crr[++k] = i;
cz++;
}
}
int index[17] = { 0 };
//cout<<k<<endl;
if (k > 6 || lz != cz)
{
cout << "more\n";
}
else
{
b = 10;
int n = k / 2;
int ind;
//cout<<"value of n "<<n<<endl;
for (j = 1; j <= n; j++)
{
b = 100;
for (i = 1; i <= n; i++)
{
if (index[crr[n + i]] == 0)
{
// cout<<"bfs of "<<crr[j]<<" "<<crr[n+i]<<endl;
bfs(crr[j], crr[n + i]);
a = dist[crr[n + i]];
if (b > a)
{
b = a;
ind = crr[n + i];
}
for (k = 1; k < 17; k++)
color[k] = 0;
}
}
//cout<<b<<endl;
index[ind] = 1;
c += b;
}
cout << "Case #" << op << ": ";
if (c > 3)
cout << "more\n";
else
cout << c << endl;
op++;
}
}
cout << "\n";
/* Enter your code here. Read input from STDIN. Print output to STDOUT */
return 0;
}