AOJ 1295 : Cubist Artwork
問題リンク:Cubist Artwork | Aizu Online Judge
問題概要:
キューブをいくつか積み上げて作った柱をいくつかならべてつくったオブジェクトの形が指定されるのでフロントとサイドからみたときにその指定通りになっているようなオブジェクトをつくるために必要なキューブの数の最小の個数をもとめよ
使用した言語:C++
解法:
フロントから見たときの柱のうち、サイドで要求された柱と同じ高さのものがあれば再利用する。
コード:
#include<iostream> #include<map> using namespace std; int main() { while(true) { int a,b,cnt = 0; cin >> a >> b; if(a+b == 0)break; map<int,int> exist; for(int i=0;i<a;i++) { int in; cin >> in; exist[in]++,cnt+=in; } for(int i=0;i<b;i++) { int in; cin >> in; if(!exist[in]) { cnt += in; } else { exist[in]--; } } cout << cnt << endl; } return 0; }