(uva)232Crossword Answers

来源:互联网 发布:软件项目立项申请报告 编辑:程序博客网 时间:2024/05/18 03:32

题意:找出满足条件的所有的单词,具体看代码;

/* ***********************************************Author        :Lu_ckyCreated Time  :2016-6-8 16:50:11File Name     :xiao.cpp************************************************ */#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <vector>#include <queue>#include <set>#include <map>#include <string>#include <math.h>#include <stdlib.h>#include <time.h>#define LL long longusing namespace std;const int SIZE=1e6+10;const int maxn=1<<30;char cmap[20][20];int ans[20][20];void init(int n,int m){memset(ans,0,sizeof(ans));int cnt=0;for(int i=0;i<n;i++)for(int j=0;j<m;j++){if(i==0){if(cmap[i][j]!='*')ans[i][j]=++cnt;}else if(j==0){if(cmap[i][j]!='*')ans[i][j]=++cnt;}else {if(cmap[i][j]!='*'&&(cmap[i-1][j]=='*'||cmap[i][j-1]=='*'))ans[i][j]=++cnt;}}}int main(){    //freopen("in.txt","r",stdin);    //freopen("out.txt","w",stdout);int n,m,cas=0;while(scanf("%d",&n)!=EOF){if(!n)break;scanf("%d",&m);for(int i=0;i<n;i++)scanf("%s",cmap[i]);if(cas)printf("\n");printf("puzzle #%d:\n",++cas);printf("Across\n");init(n,m);for(int i=0;i<n;i++)for(int j=0;j<m;j++){if(cmap[i][j]!='*'&&(j==0||cmap[i][j-1]=='*')){int y=j;printf("%3d.",ans[i][j]);while(y<m&&cmap[i][y]!='*'){printf("%c",cmap[i][y]);y++;}printf("\n");}}printf("Down\n");for(int i=0;i<n;i++)for(int j=0;j<m;j++){if(cmap[i][j]!='*'&&(i==0||cmap[i-1][j]=='*')){int y=i;printf("%3d.",ans[i][j]);while(y<n&&cmap[y][j]!='*'){printf("%c",cmap[y][j]);y++;}printf("\n");}}}    return 0;}


0 0
原创粉丝点击