[伯俊]1965号マウントボックス
[伯俊]1965号机器人
1.質問
六面体の箱が一列に並んでいる.各箱には大きさがあり、前の箱の大きさが後ろの箱の大きさより小さい場合は、前の箱を後ろの箱に入れることができます.たとえば、前から(1、5、2、3、7)の大きさのボックスが5つある場合、1の大きさのボックスを5のボックスに入れてから、7の大きさのボックスに入れることができます.しかし、箱を置く方法はいろいろあります.前の例では、1、2、3、7のサイズのボックスを順に選択すると、合計4つのボックスが1つのボックスに入ります.
ボックスが大きくなると、プログラムを作成し、一度に入れることができる最大ボックス数を出力します.
2.入力
ファイルの最初の行は、ボックスの個数n
(1 ≤ n ≤ 1000)
を表す.2行目は各箱の大きさを順番に与えます.箱の大きさは1000を超えない自然数です.3.出力
最初の行に1行入れることができる最大箱数を出力します.
4.解答
5.コード
#include <iostream>
#include <algorithm>
using namespace std;
int arr[1000];
int d[1000];
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int length;
cin >> length;
for (int i = 0; i < length; i++){
cin >> arr[i];
d[i] = 1;
}
d[0] = 1;
for (int i = 1; i < length; i++){
for (int j = 0; j < i; j++){
if (arr[j] < arr[i]) d[i] = max(d[i], d[j] + 1);
}
}
int maxValue = d[0];
for (int i = 0; i < length; i++){
maxValue = max(maxValue, d[i]);
}
cout << maxValue;
}
Reference
この問題について([伯俊]1965号マウントボックス), 我々は、より多くの情報をここで見つけました https://velog.io/@e7838752/boj1965テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol