#include <stdio.h>
int main() {
int N;
int A[N]; // 수열 A를 저장할 배열
int dp[N]; // 각 위치에서 가장 긴 증가하는 부분 수열의 길이를 저장할 배열
int max_length = 0; // 가장 긴 증가하는 부분 수열의 길이
// 수열 A 입력
for (int i = 0; i < N; i++) {
dp[i] = 1; // 초기값은 1로 설정
}
// 각 숫자에 대해 이전 숫자들과 비교하여 가장 긴 증가하는 부분 수열의 길이 구하기
for (int i = 1; i < N; i++) {
for (int j = 0; j < i; j++) {
if (A[j] < A[i] && dp[j] + 1 > dp[i]) {
dp[i] = dp[j] + 1;
}
}
if (dp[i] > max_length) {
max_length = dp[i];
}
}
// 가장 긴 증가하는 부분 수열의 길이 출력
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbigpIHsKICAgIGludCBOOwogICAgc2NhbmYoIiVkIiwgJk4pOwoKICAgIGludCBBW05dOyAvLyDsiJjsl7QgQeulvCDsoIDsnqXtlaAg67Cw7Je0CiAgICBpbnQgZHBbTl07IC8vIOqwgSDsnITsuZjsl5DshJwg6rCA7J6lIOq4tCDspp3qsIDtlZjripQg67aA67aEIOyImOyXtOydmCDquLjsnbTrpbwg7KCA7J6l7ZWgIOuwsOyXtAogICAgaW50IG1heF9sZW5ndGggPSAwOyAvLyDqsIDsnqUg6ri0IOymneqwgO2VmOuKlCDrtoDrtoQg7IiY7Je07J2YIOq4uOydtAoKICAgIC8vIOyImOyXtCBBIOyeheugpQogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyBpKyspIHsKICAgICAgICBzY2FuZigiJWQiLCAmQVtpXSk7CiAgICAgICAgZHBbaV0gPSAxOyAvLyDstIjquLDqsJLsnYAgMeuhnCDshKTsoJUKICAgIH0KCiAgICAvLyDqsIEg7Iir7J6Q7JeQIOuMgO2VtCDsnbTsoIQg7Iir7J6Q65Ok6rO8IOu5hOq1kO2VmOyXrCDqsIDsnqUg6ri0IOymneqwgO2VmOuKlCDrtoDrtoQg7IiY7Je07J2YIOq4uOydtCDqtaztlZjquLAKICAgIGZvciAoaW50IGkgPSAxOyBpIDwgTjsgaSsrKSB7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBpOyBqKyspIHsKICAgICAgICAgICAgaWYgKEFbal0gPCBBW2ldICYmIGRwW2pdICsgMSA+IGRwW2ldKSB7CiAgICAgICAgICAgICAgICBkcFtpXSA9IGRwW2pdICsgMTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoZHBbaV0gPiBtYXhfbGVuZ3RoKSB7CiAgICAgICAgICAgIG1heF9sZW5ndGggPSBkcFtpXTsKICAgICAgICB9CiAgICB9CgogICAgLy8g6rCA7J6lIOq4tCDspp3qsIDtlZjripQg67aA67aEIOyImOyXtOydmCDquLjsnbQg7Lac66ClCiAgICBwcmludGYoIiVkXG4iLCBtYXhfbGVuZ3RoKTsKCiAgICByZXR1cm4gMDsKfQo=