11699 - Rooks
Posted: Mon Oct 19, 2009 8:10 pm
I am getting WA for this problem. somebody please check my code & give me some input for which my code fails.
code given below....
Thanks in advance....
code given below....
Code: Select all
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char grid[30][30];
int main()
{
//freopen("a.in","r",stdin);
//freopen("a.out","w",stdout);
long i,j,rmax,count,row[30],col[30],rin,cin,cmax;
while(gets(grid[0]))
{
if(!strcmp(grid[0],"END"))
break;
for(i=1;i<15;i++)
gets(grid[i]);
memset(row,0,sizeof(row));
memset(col,0,sizeof(col));
for(i=0;i<15;i++)
{
for(j=0;j<15;j++)
{
if(grid[i][j]=='#')
row[i]++;
}
}
for(i=0;i<15;i++)
{
for(j=0;j<15;j++)
{
if(grid[j][i]=='#')
col[i]++;
}
}
count=0;
rin=0;
cin=0;
while(1)
{
rmax=0;
for(i=0;i<15;i++)
{
if(rmax<row[i])
{
rmax=row[i];
rin=i;
}
}
if(rmax==0)
break;
cmax=0;
for(i=0;i<15;i++)
{
if(cmax<col[i])
{
cmax=col[i];
cin=i;
}
}
if(cmax>rmax)
{
col[cin]=0;
for(i=0;i<15;i++)
{
if(grid[i][cin]=='#')
{
grid[i][cin]='.';
row[i]--;
}
}
rmax=0;
for(i=0;i<15;i++)
{
if(rmax<row[i])
{
rmax=row[i];
rin=i;
}
}
row[rin]=0;
for(i=0;i<15;i++)
{
if(grid[rin][i]=='#')
{
grid[rin][i]='.';
col[i]--;
}
}
}
else
{
row[rin]=0;
for(i=0;i<15;i++)
{
if(grid[rin][i]=='#')
{
grid[rin][i]='.';
col[i]--;
}
}
cmax=0;
for(i=0;i<15;i++)
{
if(cmax<col[i])
{
cmax=col[i];
cin=i;
}
}
col[cin]=0;
for(i=0;i<15;i++)
{
if(grid[i][cin]=='#')
{
grid[i][cin]='.';
row[i]--;
}
}
}
count++;
}
printf("%ld\n",count);
}
return 0;
}
Thanks in advance....