CodeForces-4A-Letter

原创 2016年05月31日 22:27:54

Description

A boy Bob likes to draw. Not long ago he bought a rectangular graph (checked) sheet with n rows and m columns. Bob shaded some of the squares on the sheet. Having seen his masterpiece, he decided to share it with his elder brother, who lives in Flatland. Now Bob has to send his picture by post, but because of the world economic crisis and high oil prices, he wants to send his creation, but to spend as little money as possible. For each sent square of paper (no matter whether it is shaded or not) Bob has to pay 3.14 burles. Please, help Bob cut out of his masterpiece a rectangle of the minimum cost, that will contain all the shaded squares. The rectangle's sides should be parallel to the sheet's sides.

Input

The first line of the input data contains numbers n and m (1 ≤ n, m ≤ 50), n — amount of lines, and m — amount of columns on Bob's sheet. The following n lines contain m characters each. Character «.» stands for a non-shaded square on the sheet, and «*» — for a shaded square. It is guaranteed that Bob has shaded at least one square.

Output

Output the required rectangle of the minimum cost. Study the output data in the sample tests to understand the output format better.

Sample Input

Input
6 7
.......
..***..
..*....
..***..
..*....
..***..
Output
***
*..
***
*..
***
Input
3 3
***
*.*
***
Output
***
*.*
***


就是找最大的*和最小的*,然后输出期间,暴力解决


#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
	char dizi[55][55],c;
	int k,n,m,i,j,maxx=-999999,maxy=-999999,minx=99999,miny=999999,sayac=0;
	scanf("%d %d",&n,&m);
	for(i=0;i<n;i++)
	{
		scanf("%s",dizi[i]);
	}
	for(i=0;i<n;i++)
	{
		for(j=0;j<m;j++)
		{
			if(dizi[i][j]=='*')
			{
				if(i<=minx)
				{
					minx=i;
				}
				if(i>=maxx)
				{
					maxx=i;
				}
				if(j<=miny)
				{
					miny=j;
				}
				if(j>=maxy)
				{
					maxy=j;
				}
			}
		}
	}
	for(i=minx;i<=maxx;i++)
	{
		for(j=miny;j<=maxy;j++)
		{
			printf("%c",dizi[i][j]);
		}
		printf("\n");
	}
	return 0;
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Codeforces 379D. New Year Letter【动态规划、暴力枚举】

题目大意: 给出如下定义: s(n)=s(n-2)+s(n-1),其中s为字符串,+为串联,比如s1="ab",s2="cd",s1+s2="abcd",s2+s1="cdab"。 给出k,x,n...

【题解】codeforces741D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths

题目链接 题意:给定一棵有根树,结点编号为1~n,根结点为结点1。每条边上有一个字母,求各子树内最长的满足“路径上的字母经过重排后可以构成回文串”的简单路径。 分析:对结点u,用2进制数vec[u...

Codeforces 180C Letter【dp】

C. Letter time limit per test 1 second memory limit per test 256 megabytes input standar...

【codeforces 379D】New Year Letter

【题目链接】:http://codeforces.com/contest/379/problem/D【题意】 让你构造出两个长度分别为n和m的字符串s[1]和s[2] 然后按照连接的规则,顺序...

Codeforces Beta Round #4 (Div. 2 Only)——D. Mysterious Present

题意: 现在我们有n封信封,然后我们有一张卡片,并且我们知道它的长度和宽度。 然后n行我们知道每个信封的长度和宽度。 现在我们想形成一个链,这条链的长度就是这条链中所含有的信封的数量,但是必须同时保证...

codeforces 452B 4-point polyline

#include #include #include #include #include #include #include #include #include #include #include #...

Codeforces 375D 数据结构(好题中的好题, 4解)

题目链接:http://codeforces.com/problemset/problem/375/D 全部代码: 题意:给你一棵树n个点,m次询问(n=100000,m=100000),每个节点有一...
  • c3568
  • c3568
  • 2014-03-25 19:38
  • 1274

CodeForces 660F Bear and Bowling 4

Bear and Bowling 4 Time Limit: 2000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u ...

Codeforces 452B 4-point polyline (暴力出奇迹)

题目链接:Codeforces 452B 4-point polyline 给出4个点求

CodeForces - 4C

A new e-mail service "Berlandesk" is going to be opened in Berland in the near future. The site admi...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)