推箱子

#include<iostream>
using namespace std;
int main()
{
 int n,row,col,i,j,m;
 cin>>n;
 int a[n][n];
 for(i=0;i<n;i++)
 {
  for(j=0;j<n;j++)
  {
   cin>>a[i][j];
  }
 }
 cin>>row>>col;
 cin>>m;
    if(col==n-1)
    {
     cout<<"0";
 }
 else
 {
  if(a[row][col+1]==2)
  {
   cout<<"0";
  }
  else
  {
   if(a[row][col+1]==1&&(col==n-2||a[row][col+2]!=0))
   {
    cout<<"0";
   } 
   else
   {
    cout<<"1";
   }
  }
 }
}


讨论不能推的情况:

1.所在的位置是边界

2.所在位置不是边界,右边是墙

3.所在位置不是边界,右边是箱子且是边界或右边的右边不是空位

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值