推箱子(右)
来源:互联网 发布:目前淘宝什么好卖 编辑:程序博客网 时间:2024/05/16 10:09
1233.推箱子(右)
时限:1000ms 内存限制:10000K 总时限:3000ms
描述
有一个房间,房间里有一个人P,房间是规格为 n*n的方格,房子内某些位置上有箱子B,有些位置上有障碍物,人处于某一位置,可以选择向右方向前进,但要保证面对的不是墙、障碍物,若面对的是墙或障碍物则无法前进,若人面对箱子但箱子的前面为障碍物或者墙或者箱子,也不能前进,若为箱子并且箱子所面对的不是墙,不是障碍物也不是箱子,即为空格,则可以推动箱子,即人和箱子分别向右移动一个格子。
输入
房间的规格,一个正整数 n(2<=n<=100),占一行,代表矩阵的大小;输入方形矩阵n行n列,由0、1和2组成(其中0代表空地,1代表箱子,2代表障碍物),即房子的地图,输入一对数据row,col(第row行,第col列),表示人所在的位置坐标(保证人所在的位置为空地),以空格隔开,占一行;输入一个整数2,表示向右方向前进(0,1,2,3分别为向左下右上前进)。
输出
"1"表示可以向该方向前进;
"0"表示不能向该方向前进;
输出占一行;
"0"表示不能向该方向前进;
输出占一行;
输入样例
4
0 0 0 0
0 1 1 0
0 0 1 0
0 2 0 0
2 1
2
0 0 0 0
0 1 1 0
0 0 1 0
0 2 0 0
2 1
2
输出样例
1
答案:
#include<stdio.h>
int main()
{
int a[100][100],n,i,j,row,col,b=2;
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}
scanf("%d %d",&row,&col);
scanf("%d",&b);
if(a[row][col+1]==0&&(col+1)<n||a[row][col+1]==1&&a[row][col+2]==0&&(col+2)<n)
{
printf("1");
}
else printf("0");
}
int main()
{
int a[100][100],n,i,j,row,col,b=2;
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}
scanf("%d %d",&row,&col);
scanf("%d",&b);
if(a[row][col+1]==0&&(col+1)<n||a[row][col+1]==1&&a[row][col+2]==0&&(col+2)<n)
{
printf("1");
}
else printf("0");
}
阅读全文
0 0
- 推箱子(右)
- 【1233】推箱子(右)
- 推箱子(proteus仿真)
- Push Box(推箱子)
- hdu(1254)推箱子
- HDU1254 推箱子(BFS)
- 推箱子,推推推(课程设计)
- 推箱子
- 推箱子
- 推箱子
- 推箱子
- 推箱子
- 推箱子
- 推箱子
- 推箱子
- 推箱子
- 推箱子
- 推箱子
- javascript学习笔记
- 微信企业号获取用户授权登陆信息
- Web请求响应编码问题详解
- 2018年度52数学能力测评第一阶段各年级答案公布
- 高可用架构篇 MySQL源码编译安装(CentOS-6.6+MySQL-5.6)
- 推箱子(右)
- 安卓开发实现蓝牙打开和关闭
- ionic中键盘把tabs顶上去的解决方法(android)
- 【spring学习笔记二】使用注解配置spring
- 如何remove the last node in LLL
- 2017.10.23 模拟考试 (题目来自:学大伟业)
- 在windows如何使用pip安装包
- JAVA8 十大新特性详解
- Ruby学习笔记(17)_attr_accessor attr_reader attr_writer