UVa-227 - Puzzle
来源:互联网 发布:酒店系统数据库设计 编辑:程序博客网 时间:2024/05/01 22:20
#include<iostream>#include<cstdio>#include<cstring>using namespace std;void f(char a,int &xx,int &yy){ if(a=='A') xx=-1,yy=0; else if(a=='B') xx=1,yy=0; else if(a=='R') xx=0,yy=1; else if(a=='L') xx=0,yy=-1;}int main(){ //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); char a[10][10]={}; int cnt=0; while(gets(a[1]+1)&&a[1][1]!='Z') { ++cnt; if(cnt>1) printf("\n"); printf("Puzzle #%d:\n",cnt); for(int i=2;i<=5;i++) gets(a[i]+1); int x,y; for(int i=1;i<=5;i++) for(int j=1;j<=5;j++) if(a[i][j]==' ') x=i,y=j; char b[100]={}; cin.getline(b,100,'0'); getchar(); bool flag=1; for(int i=0;b[i]!='\0';i++) { if(b[i]=='\n') continue; int xx=0,yy=0; f(b[i],xx,yy); if(a[x+xx][y+yy]=='\0') { flag=0; printf("This puzzle has no final configuration.\n"); break; } char t=a[x+xx][y+yy]; a[x+xx][y+yy]=a[x][y]; a[x][y]=t; x=x+xx,y=y+yy; } if(flag) { for(int i=1;i<=5;i++) { printf("%c",a[i][1]); for(int j=2;j<=5;j++) printf(" %c",a[i][j]); printf("\n"); } } memset(a,0,sizeof(a)); }}
上面的读取操作指令的方式是先全部存下来,下面是另外一种方法–一个一个字符地读。
#include<iostream>#include<cstdio>#include<cstring>using namespace std;void f(char a,int &xx,int &yy){ if(a=='A') xx=-1,yy=0; else if(a=='B') xx=1,yy=0; else if(a=='R') xx=0,yy=1; else if(a=='L') xx=0,yy=-1;}int main(){ //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); char a[10][10]={}; int cnt=0; while(gets(a[1]+1)&&a[1][1]!='Z') { ++cnt; if(cnt>1) printf("\n"); printf("Puzzle #%d:\n",cnt); for(int i=2;i<=5;i++) gets(a[i]+1); int x,y; for(int i=1;i<=5;i++) for(int j=1;j<=5;j++) if(a[i][j]==' ') x=i,y=j; char b; while(1) { b=getchar(); if(b=='0') break; else if(b=='\n') continue; int xx=0,yy=0; f(b,xx,yy); if(a[x+xx][y+yy]=='\0') { printf("This puzzle has no final configuration.\n"); break; } char t=a[x+xx][y+yy]; a[x+xx][y+yy]=a[x][y]; a[x][y]=t; x=x+xx,y=y+yy; } if(b=='0') { for(int i=1;i<=5;i++) { printf("%c",a[i][1]); for(int j=2;j<=5;j++) printf(" %c",a[i][j]); printf("\n"); } } else while(getchar()!='0'){} getchar(); memset(a,0,sizeof(a)); }}
0 0
- UVa 227 - Puzzle
- UVa 227 - Puzzle
- Uva-227-Puzzle
- UVa 227 Puzzle
- UVA - 227 Puzzle
- Uva-227 - Puzzle-AC
- UVa 227 - Puzzle
- UVa-227 - Puzzle
- 【Uva 227】 Puzzle
- UVa 227 - Puzzle
- UVa 227 Puzzle
- UVA - 227 Puzzle
- Uva - 227 - Puzzle
- UVA - 227 Puzzle
- UVa 227 Puzzle
- UVA 227 Puzzle
- UVa 227 - Puzzle
- UVa 227 Puzzle
- UVa-1585Score
- UVa-1586Molar mass
- UVa-1225Digit Counting
- LeetCode-Excel Sheet Column Title
- UVa-455Periodic Strings
- UVa-227 - Puzzle
- 锋利的SQL2014:基于窗口的排名计算
- 锋利的SQL2014:基于窗口的分布计算
- dnsmasq
- UE4学习笔记: Gameplay Classes
- 深入理解Java内存模型(三)——顺序一致性
- 锋利的SQL2014:基于窗口的偏移计算
- 转载-慕容小匹夫细说Unity3D(七)——从Draw Call到GC
- Unity3D中常用的数据结构总结与分析