Pagini recente »
Diferențe pentru problema/suita între reviziile 10 și 2
Nu există diferențe între titluri.
Diferențe între conținut:
== include(page="template/taskheader" task_id="suita") ==
Se dă *P*, o permutare a numerelor de la 1 la *N*. *P* este, deci, un vector de numere distincte două cîte două, cu 1 ≤ *P[i]* ≤ *N* pentru orice *i*.
Se dă *P*, o permutare a numerelor de la 1 la *N*. *P* este, deci, un vector de numere distincte două cîte două, cu 0 < *P[i]* ≤ *N* pentru orice *i*.
O suită de lungime *K* este un subvector ale cărui elemente, după sortare, cresc din 1 in 1. Cu alte cuvinte, dacă avem un subvector *P[i..j]* de lungime *K* = *j* - *i* + 1, el este suită dacă:
* sortăm crescător subvectorul *P[i..j]* cu rezultatul în *A* de *K* elemente
* *A[i]* - *A[i-1]* = 1 pentru orice *i* (2 ≤ *i* ≤ [*K*])
- sortăm crescător subvectorul *P[i..j]* cu rezultatul în *A* de *K* elemente
- *A[i]* - *A[i-1]* = 1 pentru orice *i* (2 ≤ *i* ≤ [*K*])
h2. Cerință
h2. Date de intrare
Fișierul de intrare $suita.in$ conține pe prima linie numerele *N* și *K*. Pe a doua linie conține cele *N* numere are permutării, despărțite prin spații.
Fișierul de intrare $suita.in$ ...
h2. Date de ieșire
În fișierul de ieșire $suita.out$ veți scrie un singur număr, numărul de suite de lungime *K* din permutarea *P*.
În fișierul de ieșire $suita.out$ ...
h2. Restricții
* 1 ≤ *N* ≤ 400000
* 1 ≤ *K* ≤ minim dintre 35000 și *N*
* *P[i]* distincte două cîte două
* 1 ≤ *P[i]* ≤ *N*
* $... ≤ ... ≤ ...$
h2. Exemplu
table(example).
|_. suita.in |_. suita.out |_. Explicație |
| 2 1
2 1
| 2
| Există două suite de lungime 1 în șirul [2 1], anume fiecare din elemente.
|
| 5 3
5 3 4 2 1
| 2
| Există 2 suite de lungime 3 în șirul [5 3 4 2 1]:
[5 3 4]
[3 4 2]
|
|_. suita.in |_. suita.out |
| This is some
text written on
multiple lines.
| This is another
text written on
multiple lines.
|
h3. Explicație
...
== include(page="template/taskfooter" task_id="suita") ==
Nu există diferențe între securitate.