SRM 299 Div2-500pt: Projections

問題概要

H*W(H,W<50)のボードに物体が置いてあり、x方向の射影とy方向の射影が与えられる。置いてある物体の個数の最小値と最大値を求める問題。

解法

射影で確認できる個数をX,Yとすると、最小はmax(X,Y)。最大はX*Y。

class Projections {
public:
vector <int> count(string front, string right) {
	vector<int> ret(2,0);
	int f = 0, r = 0;
	for(int i=0; i<(int)front.size(); i++)if(front[i]=='x')f++;
	for(int j=0; j<(int)right.size(); j++)if(right[j]=='x')r++;
	ret[0] = max(f, r);
	for(int i=0; i<(int)front.size(); i++)for(int j=0; j<(int)right.size(); j++){
		if(front[i] == 'x' && right[j] == 'x') ret[1]++;
	}
	return ret;
}