プログラミングコンテスト。

http://codeforces.com/
"(c) Copyright 2010 Mike Mirzayanov
The only programming contests Web 2.0 platform"らしい。

今回#14(Div.2)なんだけどもDivってなんのこと??helpとか、FAQのページが見つかりません。

#14ではA~Eまでの五問を解きますが、僕はコンテストに参加してないので、
出された問題を(´・ω・`)こっそり解きました。Aだけ。

問題:少年ボブは絵を書くのが好きでした。(中略)図形を書かれた部分を含む最小の四角形で切り落とし。
入力:stdin
出力:stdout


==============================
input
6 7
.......
..***..
..*....
..***..
..*....
..***..
------------------------------
output
***
*..
***
*..
***
==============================
input
3 3
***
*.*
***
------------------------------
output
***
*.*
***
==============================

#include
#include
#include

int main(int argc, char** argv)
{
int n, m;
std::cin >> n >> m;

std::vector line(n);

for(int i = 0; i < n; ++i) {
std::cin >> line[i];
}

int left = m-1;
int right = 0;
int top = n-1;
int bottom = 0;

for(int i = 0; i < n; ++i ) {
for( int j = 0; j < m; ++j ) {
if( line[i][j] == '*' ) {

#define MIN_IF(dir, val) \
(dir) = std::min( (dir),(val) )

#define MAX_IF(dir, val) \
(dir) = std::max( (dir),(val) )

MIN_IF(left,j);
MIN_IF(top,i);
MAX_IF(right,j);
MAX_IF(bottom,i);
}
}
}

for( int i = top; i <= bottom; ++i ) {
for( int j = left; j <= right; ++j ) {
std::cout << line[i][j];
}
std::cout << '\n';
}
}

割と綺麗にかけたと思います。
はてな記法対策と、ちょっと整形しました。