谜题 (Puzzle,ACM/ICPC World Finals 1993,UVa227)
2024-08-27 20:45:10
题目描述:算法竞赛入门经典习题3-5
题目思路:模拟题
#include <stdio.h>
#include <string.h>
#define maxn 55
char gird[maxn][maxn] ;
char cmd[maxn] ;
int blank_x,blank_y ;
int main(int argc, char *argv[])
{ int flag = ;
for(int i=;i<;i++)
gets(gird[i]) ;
for(int i=;i<;i++)
for(int j=;j<;j++)
if(gird[i][j]==' '){
blank_x = i;
blank_y = j;
}
while(gets(cmd)){
int len = strlen(cmd) ;
for(int i=;i<len;i++){
if(cmd[len-] == '' || cmd[i] == 'A' || cmd[i] == 'R' || cmd[i] == 'B' || cmd[i] == 'L' ){
if(cmd[i] == 'A' && blank_x != )
{
gird[blank_x][blank_y] = gird[blank_x-][blank_y];
gird[--blank_x][blank_y] = ' ';
}
if(cmd[i] == 'R' && blank_y != )
{
gird[blank_x][blank_y] = gird[blank_x][blank_y+];
gird[blank_x][++blank_y] = ' ';
}
if(cmd[i] == 'B' && blank_x != )
{
gird[blank_x][blank_y] = gird[blank_x+][ blank_y];
gird[++blank_x][ blank_y] = ' ';
}
if(cmd[i] == 'L' && blank_y != )
{
gird[blank_x][blank_y] = gird[blank_x][ blank_y-];
gird[blank_x][--blank_y] = ' ';
} }
else flag = ;
}
if(flag)
{
for(int i = ; i < ; i++)
{
printf("%c %c %c %c %c\n", gird[i][], gird[i][], gird[i][], gird[i][], gird[i][]);
}
}
else
printf("This puzzle has no final configuration.\n"); }
return ;
}
最新文章
- Linux系统编程重要细节记录(持续更新中)
- android5.0 aosp编译记录(由于机器硬件原因,改为4.4.2编译通过)
- [Android]竖直滑动选择器WheelView的实现
- Zend Studio 文件头和方法注释设置
- Android OpenCV实现图片叠加,水印
- LESS的一点自己的理解(2)
- 引入js文件,ajax不执行操作
- 使用CXF 2.7.5出现的java.lang.RuntimeException: Cannot create a secure XMLInputFactory错误解决
- shell 备份脚本
- Android进阶(五)在Eclipse中关联Gson源码
- Httpclient发送json请求
- [Bash]LeetCode192. 统计词频 | Word Frequency
- Apache服务器和tomcat服务器有什么区别(转)
- 这13个开源GIS软件,你了解几个?【转】
- 去除文件BOM头工具
- Centos 7升级内核
- 处理特殊格式的GET传参
- swift的enum基础
- Prim&#39;s Algorithm &; Kruskal&#39;s algorithm
- free 和 delete 把指针怎么了