Hatena::Grouptopcoder

Wrong Answer -- japlj このページをアンテナに追加 RSSフィード

 | 

2011-01-19

PKU 3802 -- Cubist Artwork

| 17:02 | PKU 3802 -- Cubist Artwork - Wrong Answer -- japlj を含むブックマーク はてなブックマーク - PKU 3802 -- Cubist Artwork - Wrong Answer -- japlj PKU 3802 -- Cubist Artwork - Wrong Answer -- japlj のブックマークコメント

n個のブロックが積まれてる山がいくつ存在するかについて考えると、n個のブロックの山が前からa個、横からb個見えたなら全部で max(a,b) 個あれば十分。

あとは足すだけ。


#include<cstdio>

using namespace std;

int main()
{
  int w[2];
  while(scanf("%d%d", &w[0], &w[1]), w[0]||w[1]) {
    int h[2][20], c=0;
    for(int i=0; i<2; ++i)
      for(int j=0; j<w[i]; ++j) scanf("%d", &h[i][j]);
    for(int i=1, x=0; i<=20; ++i, x=0) {
      for(int j=0, y=0; j<2; ++j, x=x<y?y:x, y=0)
	for(int k=0; k<w[j]; ++k) y+=h[j][k]==i;
      c += x*i;
    }
    printf("%d\n", c);
  }
  return 0;
}
 |