ab

Time limit: 0.1s Memory limit: 16MB Input: ab.in Output: ab.out

Una din cele mai noi pasiuni ale lui Zăhărel este să studieze diverse proprietăţi ale permutărilor. De exemplu, este interesat de permutările în care cel mai lung subşir crescător şi cel mai lung subşir descrescător au lungimi date.

Cerință

Să se scrie un program care determină o permutare de lungime NN în care cel mai lung subşir crescător are lungime AA şi cel mai lung subşir descrescător are lungime BB.

Date de intrare

Fişierul de intrare ab.in va conţine pe prima linie numerele N A BN \ A \ B.

Date de ieșire

Fişierul de ieşire ab.out va conţine pe prima linie NN numere separate prin câte un spaţiu, reprezentând o permutare care respectă condiţiile de mai sus.

Dacă există mai multe soluţii, se va afişa cea minimă din punct de vedere lexicografic.

Restricții și precizări

  • 1N,A,B30 0001 \leq N, A, B \leq 30 \ 000
  • Se garantează că mereu există soluţie pentru datele de intrare
  • Se numeşte subşir al şirului X=(x1,x2.xN)X = ( x_1, x_2. \ldots x_N ), un şir Y=(xi1,xi2,xiM)Y = ( x_{i1}, x_{i2}, \ldots x_{iM}) cu proprietatea 1i1<i2<<iMN1 \leq i_1 < i_2 < \ldots < i_M \leq N
  • Un şir (x1,x2,xK)x_1, x_2, \ldots x_K) este mai mic din punct de vedere lexicografic decat un alt şir (y1,y2,yK)(y_1, y_2, \ldots y_K) dacă există o poziţie pKp \leq K, astfel încat xp<ypx_p < y_p și x1=y1x_1=y_1, x2=y2xp1=yp1x_2=y_2 \ldots x_{p-1}=y_{p-1}
  • Pentru un test se va acorda 70%70\% din punctaj dacă permutarea afişată are cel mai lung subşir crescător de lungime AA şi cel mai lung subşir descrescător de lungime BB, dar nu este minimă lexicografic

Exemplu

ab.in

4 2 3

ab.out

1 4 3 2

Explicație

Cel mai lung subşir crescător are lungime 2 (1 4, 1 32 \ (1 \ 4, \ 1 \ 3 sau 1 2)1 \ 2), iar cel mai lung subşir descrescător are lungime 3 (4 3 2)3 \ (4 \ 3 \ 2).

O altă soluţie posibilă este 2 4 3 12 \ 4 \ 3 \ 1, dar aceasta nu este minimă din punct de vedere lexicografic.

Log in or sign up to be able to send submissions!