x座標上に複数の長方形のビルがあったとき、それらでできるシルエットを答える問題なのですが...
入力1行目が1 11 5だとしたら座標1から5まで、高さ11のビルがあることを表しています。
例で下のように入力すると
1 11 5
2 6 7
3 13 9
12 7 16
14 3 25
19 18 22
23 13 29
24 4 28
出力は
1 11 3 13 9 0 12 7 16 3 19 18 22 3 23 13 29 0
となるようにしたいです。
イメージは下のようになります。
![
自分でも一応コード書いてみたのですが...
C
1#include <stdio.h> 2#define SIZE 10000 3 4int hi[SIZE]; 5 6int main(void) 7{ 8 int i, L, H, R, maxR = 0; 9 10 while (scanf("%d %d %d", &L, &H, &R) == 3) { 11 for (i = L; i < R; i++) { 12 if (H > hi[i]) 13 hi[i] = H; 14 } 15 if (R > maxR) 16 maxR = R; 17 } 18 19 for (i = 1; i < maxR; ++i) 20 if (hi[i] != hi[i - 1]) 21 printf("%d,%d ", i, hi[i]); 22 printf("%d \n", maxR); 23 return 0; 24}
なんかよくわからなくなってきたので添削お願いします(T ^ T)
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/12 05:55
2016/07/12 06:07 編集
2016/07/12 06:22
2016/07/12 06:36
2016/07/12 06:57
2016/07/12 07:22
2016/07/12 07:23
2016/07/12 07:28