[BOJ]3009号七人の小人c++


https://www.acmicpc.net/problem/2309
質問する
王妃を避けるため、7人の小人と平和に暮らしていた白雪姫は危機に直面した.一日の仕事を終えて帰ってきた矮人は7人ではなく、9人だった.9人の小人はみな「白雪姫と7人の小人」の主役だと主張している.優れた数学的直感を持つ白雪姫は、幸いにも7人の小人の身長の和が100だったことを覚えている.9人のジュニアの身長を手に入れたとき、白雪姫に7人のジュニアを探すプログラムを書いてください.
入力します.
20
7
23
19
10
15
25
8
13
出力します.
7
8
10
13
19
20
23
#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;

int height[9];
int t1, t2, sum = 0;

void find_real_dwarf() {
  for(int i = 0; i < sizeof(height) / sizeof(int); i++) {
    sum -= height[i];
    for(int j = i + 1; j < sizeof(height) / sizeof(int); j++) {
      sum -= height[j];
      if(sum == 100) {
        height[i] = 0;
        height[j] = 0;
        return;
      }
      sum += height[j];
    }
    sum += height[i];
  }
}

int main() {
  for(int i = 0; i < sizeof(height) / sizeof(int); i++) {
    scanf("%d", &height[i]);
    sum += height[i];
  }

  find_real_dwarf();
  sort(height, height + sizeof(height) /sizeof(int));
  for(int i = 2; i < sizeof(height) / sizeof(int); i++) {
    printf("%d\n", height[i]);
  }
}