#include <stdio.h> #include <stdlib.h> int main() { int n; int system_count = 0; scanf("%d", &n); int system[n]; int* arr = (int*)malloc(n * sizeof(int)); for (int i = 0; i < n; i++) { scanf("%d", &arr[i]); } int dp[n]; for (int i = 0; i < n; i++) { dp[i] = 1; } for (int i = 1; i < n; i++) { for (int j = 0; j < i; j++) { if (arr[j] >= arr[i]) { if (dp[j] + 1 > dp[i]) { dp[i] = dp[j] + 1; } } } } int max = dp[0]; for (int j = 0; j < n; j++) { if (dp[j] > max) { max = dp[j]; } } for (int i = 0; i < n; i++) { int flag = 0; for (int j = 0; j < system_count; j++) { if (system[j] >= arr[i]) { system[j] = arr[i]; flag = 1; break; } } if (!flag) { system[system_count++]=arr[i]; } } printf("%d\n%d\n", max,system_count); return 0; }