wa!!!求解
查看原帖
wa!!!求解
259035
qq2514356388楼主2020/11/29 20:11
//#define Local
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
pair<char,int> a[100][100];


int main()
{
#ifdef Local
	freopen("data.in", "r", stdin);
#endif
	int n, m, i, l, kk = 1;
	while (1)
	{
		int t = 1;
		int k = 2;
		scanf("%d", &n);
		if (!n) return 0;
		scanf("%d", &m);
		for (i = 0; i < n; i++)
		{
			for (l = 0; l < m; l++)
			{
				if (l == 0)
				{
					scanf("\n%c", &a[i][l].first);
					if (a[i][l].first != '*'&&(i==0||l==0||a[i-1][l].first=='*'||a[i][l-1].first=='*')) a[i][l].second = t++;
				}
				else
				{
					scanf("%c", &a[i][l].first);
					if (a[i][l].first != '*' && (i == 0 || l == 0 || a[i - 1][l].first == '*' || a[i][l - 1].first == '*')) a[i][l].second = t++;
				}
			}
			
		}
		if (kk != 1) printf("\n");
		printf("puzzle #%d:\n", kk);
		printf("Across\n");

		for (i = 0; i < n; i++)
		{
			int c = 1;
			for (l = 0; l < m; l++)
			{
				if (c == 1 && a[i][l].first != '*')
				{
					if (k == 2)
					{
						k--;
					}
					else
					{
						printf("\n");
					}
					printf("%3d.%c", a[i][l].second,a[i][l].first);
					c = 0;
				}
				else if (a[i][l].first != '*')
				{
					printf("%c", a[i][l].first);
				}
				else
				{
					c = 1;
				}
			}
		}

		printf("\nDown\n");

		for (i = 0; i < n; i++)
		{
			int c = 1;
			for (l = 0; l < m; l++)
			{
				if (a[i][l].first != '*' && (i == 0 || a[i - 1][l].first == '*'))
				{
					if (k == 1) k--;
					else printf("\n");

					printf("%3d.", a[i][l].second);
					for (int f = i; f < n; f++)
					{
						if (a[f][l].first != '*') printf("%c", a[f][l].first);
						else
							break;
					}
					
				}
			}
		}

		printf("\n");

		int num = 1;
		kk++;
	}
	return 0;
}
2020/11/29 20:11
加载中...