증가하는 부분 수열의 개수
면접 대비시간 제한2초메모리 제한1024 MB
각 위치 i마다 A_i로 끝나는 증가 부분 수열의 개수를 세어 998244353으로 나눈 나머지를 출력한다.
문제
길이가 인 수열 가 주어진다. 수열의 번째 원소()로 끝나는 증가하는 부분 수열의 개수를 출력하는 프로그램을 작성하자.
단, 수가 너무 커질 수 있으니 으로 나눈 나머지를 출력한다.
증가하는 부분 수열이 무엇인지 잘 모르는 친구들은 친절한 동원이가 준비한 아래 정의를 읽어보도록 하자.
- 부분 수열이란 주어진 수열에서 1개 이상의 원소를 골라 원래 순서대로 나열하여 얻은 수열을 말한다.
- 증가하는 부분 수열이란 맨 처음 원소를 제외한 모든 원소가 바로 전 원소보다 큰 수열을 말한다. 다시 말해 길이가 인 부분 수열 가 있을 때, () 를 만족하면 는 증가하는 부분 수열이다.
동원이는 위 정의에 따라 길이가 인 부분 수열은 항상 증가하는 부분 수열임에 주의하면 좋겠다는 메모를 추신으로 남겼다.
입력
첫째 줄에 수열의 길이 이 주어진다.
둘째 줄에 개의 정수 이 공백으로 구분되어 주어진다.
출력
첫 번째 줄에 개의 정수를 출력한다.
번째로 출력하는 수는 로 끝나는 증가하는 부분 수열의 개수를 로 나눈 나머지이다.