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;
}



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

HDU:2612 Find a way(双BFS+打表)

Find a way Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tot...
  • zugofn
  • zugofn
  • 2016年07月30日 00:48
  • 366

codeforces round#259 div2 B题(KMP)

kmp是神器

【codeforces 379D】New Year Letter

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

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...
  • ZJZNKU
  • ZJZNKU
  • 2017年03月29日 18:53
  • 280

Codeforces 180C Letter【dp】

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

codeforces 665F. Four Divisors(求n以内因子数是4的数的个数)

F. Four Divisors time limit per test 10 seconds memory limit per test 768 megabytes input stan...
  • YHYYXT
  • YHYYXT
  • 2016年09月23日 19:49
  • 764

Codeforces Round #257 (Div. 2) | 前4题

其实本该昨天就写的,拖到

Codeforces 4B

此题我的做法是:     一、如果计划下界大于sum或者计划上界小于sum,直接no return;     二、将每天的答案设置为当天的上界;     三、现在应该调整每天的答案了,我这么做,将每天...

CodeForces 4B Before an Exam(贪心算法)

Tomorrow Peter has a Biology exam. He does not like this subject much, but d days ago he learnt that...
  • r1254
  • r1254
  • 2015年08月23日 16:58
  • 493
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CodeForces-4A-Letter
举报原因:
原因补充:

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