증가하는 부분 수열의 개수

아직 제출이 없습니다시간 제한2초메모리 제한1024 MB

문제

길이가 NN인 수열 AA가 주어진다. 수열의 ii번째 원소(A_iA\_i)로 끝나는 증가하는 부분 수열의 개수를 출력하는 프로그램을 작성하자.

단, 수가 너무 커질 수 있으니 998,244,353998\\,244\\,353으로 나눈 나머지를 출력한다.

증가하는 부분 수열이 무엇인지 잘 모르는 친구들은 친절한 동원이가 준비한 아래 정의를 읽어보도록 하자.

  • 부분 수열이란 주어진 수열에서 1개 이상의 원소를 골라 원래 순서대로 나열하여 얻은 수열을 말한다.
  • 증가하는 부분 수열이란 맨 처음 원소를 제외한 모든 원소가 바로 전 원소보다 큰 수열을 말한다. 다시 말해 길이가 NN인 부분 수열 AA가 있을 때, A_i1<A_iA\_{i-1} < A\_i (2iN2 \le i \le N) 를 만족하면 AA는 증가하는 부분 수열이다.

동원이는 위 정의에 따라 길이가 11인 부분 수열은 항상 증가하는 부분 수열임에 주의하면 좋겠다는 메모를 추신으로 남겼다.

입력

첫째 줄에 수열의 길이 NN이 주어진다.

둘째 줄에 NN개의 정수 A_1,A_2,,A_NA\_1, A\_2, \cdots , A\_N이 공백으로 구분되어 주어진다.

출력

첫 번째 줄에 NN개의 정수를 출력한다.

ii번째로 출력하는 수는 A_iA\_i로 끝나는 증가하는 부분 수열의 개수를 998,244,353998\\,244\\,353로 나눈 나머지이다.

제한

  • 1N5,0001 \leq N \leq 5\\,000
  • 1A_i5,0001 \leq A\_i \leq 5\\,000