Cartonașe

Time limit: 0.1s Memory limit: 64MB Input: cartonase.in Output: cartonase.out

Maria inventează mereu câte ceva și îl provoacă la joacă pe fratele ei mai mic Petru. De data aceasta alege NN cartonașe, pe care sunt înscrise valorile naturale distincte de la 11 la NN (fiecare astfel de număr apare pe câte un singur cartonaș), le amestecă și le așează unul lângă altul într-un șir. După amestecare numerotează cartonașele cu valori de la 11 la NN, după ordinea așezării în șir. Apoi îi formulează diverse cerințe lui Petru. Petru a învățat să programeze și acum dorește să scrie un program pentru a-i răspunde Mariei repede și fără să se mai gândească mult.

Cerință

Maria formulează lui Petru cerințe de următoarele tipuri:

  • Îți spun un număr pozpoz și trebuie să determini cartonașul numerotat cu cea mai mare valoare rr astfel încât primele rr cartonașe din șir au înscrisă o valoare strict mai mică decât cea scrisă pe cartonașul numerotat cu pozpoz. Dacă nu există niciun astfel de cartonaș, pentru rr se stabilește valoarea 00.
  • Determină toate valorile pp cu proprietatea că pe primele pp cartonașe se află înscrise toate numerele naturale de la 11 la pp.
  • Determină toate valorile pp cu proprietatea că pe primele pp cartonașe se află înscrise exact p1p-1 dintre numerele naturale de la 11 la pp.

Date de intrare

Fișierul de intrare cartonase.in conține:

  • pe prima linie numărul CC, reprezentând cerința de rezolvat (11, 22 sau 33);
  • pe linia a doua se află numărul NN, cu semnificația din enunț;
  • pe linia a treia, se află, separate prin câte un spațiu, NN valori naturale distincte, cuprinse între 11 și NN, reprezentând valorile înscrise pe cartonașe în ordinea din șir, după amestecare;
  • dacă C=1C = 1, pe linia a patra se află valoarea pozpoz.

Numerele aflate pe aceeași linie sunt separate prin câte un spațiu.

Date de ieșire

Fișierul de ieșire cartonase.out conține:

  • Dacă C=1C = 1, în fișierul de ieșire se va afla valoarea rr cu semnificația din enunț.
  • Dacă C=2C = 2 sau C=3C = 3, în fișierul de ieșire se vor afișa, separate prin câte un spațiu, valorile lui pp care îndeplinesc condițiile din cerința corespunzătoare, în ordine crescătoare. Se garantează că există cel puțin o astfel de valoare.

Restricții și precizări

  • 1C31 \leq C \leq 3;
  • 1N100 0001 \leq N \leq 100 \ 000;
  • 1pozN1 \leq poz \leq N.
# Scor Restricții
1 23 C=1C = 1
2 41 C=2C = 2
3 36 C=3C = 3

Exemplul 1

cartonase.in

1
6
3 1 6 2 4 5
5

cartonase.out

2

Explicație

C=1C = 1, poz=5poz = 5, pe cartonașul 55 se află valoarea 44. Primele două cartonașe din șirul dat au înscrise valori mai mici decât 44 iar al treilea are o valoare mai mare.

Exemplul 2

cartonase.in

2
6
3 1 2 6 4 5

cartonase.out

3 6

Explicație

C=2C = 2, pe primele 33 cartonașe se află valorile 1,2,31, 2, 3 și, de asemenea, pe primele 66 cartonașe se află valorile 1,2,3,4,5,61, 2, 3, 4, 5, 6.

Exemplul 3

cartonase.in

3
6
3 1 2 6 5 4

cartonase.out

1 2 4 5

Explicație

C=3C = 3, pe primul cartonaș (p=1p = 1) se află p1=0p-1 = 0 valori conform cerinței.
Pe primele p=2p = 2 cartonașe se află p1=1p-1 = 1 valori conform cerinței (1)(1).
Pe primele p=3p = 3 cartonașe se află 33 valori conform cerinței (1,2,3)(1, 2, 3).
Pe primele p=4p = 4 cartonașe se află p1=3p-1 = 3 valori conform cerinței (1,2,3)(1, 2, 3).
Pe primele p=5p = 5 cartonașe se află p1=4p-1 = 4 valori conform cerinței (1,2,3,5)(1, 2, 3, 5).
Pe primele p=6p = 6 cartonașe se află 66 valori conform cerinței (1,2,3,4,5,6)(1, 2, 3, 4, 5, 6).

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