fulger

Time limit: 0.2s Memory limit: 16MB Input: Output:

Cerință

Se dă un vector cu nn valori naturale, vector care are valorile ordonate crescător. Se cere să se afle subsecvența cu suma cel puțin kk cu diferența minimă între valoarea maximă și valoarea minimă din subsecvență. Dacă sunt mai multe astfel de subsecvențe, să se afle cea cu lungimea minimă.

Date de intrare

Pe prima linie se găsesc două numere întregi, nn și kk, reprezentând numărul de numere din vector, precum și suma la care vrem să ajungem.

Pe următoarea linie se află nn numere ordonate crescător, reprezentând valorile din vector.

Date de ieșire

Pe prima linie se vor găsi două numere, reprezentând diferența minimă cerută, respectiv lungimea minimă a unei subsecvențe care respectă proprietatea din enunț.

Restricții și precizări

  • 1n200 0001 \leq n \leq 200 \ 000;
  • 1k1091 \leq k \leq 10^9;
  • 1v1v2vn1 000 0001 \leq v_1 \leq v_2 \leq \dots \leq v_n \leq 1 \ 000 \ 000;
  • O subsecvență reprezintă valorile din vector a unor indici consecutivi.
  • Este garantat că există minim o subsecvență cu suma cel puțin kk.

Exemplul 1

stdin

7 10
2 3 3 4 4 5 7

stdout

1 3

Explicație

Diferența minimă se obține dacă luăm subsecvența (3,3,4)(3, 3, 4), suma fiind 1010, diferența între maxim și minim fiind 11 și lungimea minimă fiind 33.

Exemplul 2

stdin

15 85
1 5 6 7 7 7 8 8 9 9 11 13 15 16 17

stdout

7 10

Explicație

6+7+7+7+8+8+9+9+11+13=856 + 7 + 7 + 7 + 8 + 8 + 9 + 9 + 11 + 13 = 85

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