1971:Розрізання

Переглянути як PDF

Надіслати розвʼязок

Бали: 16,00 (частково)
Ліміт часу: 1.0s
Python 3 2.0s
Ліміт памʼяті: 8M
Python 3 16M
Ввід: stdin
Вивід: stdout

Автор:
Типи задач

На довгій стрічці одне за одним записані ~N~ цілих чисел – усі цілі числа від 1 до ~N~. Кожне з цих чисел записане рівно один раз і повторюваних чисел немає. Числа необов'язково писати в порядку зростання (від меншого до більшого). Між кожними двома числами є пробіл. Ми можемо розрізати стрічку там, де є пробіли. Мета полягає в тому, щоб, розрізавши стрічку, ми могли потім переставити шматки стрічки (не обертаючи їх) так, щоб в отриманій послідовності числа були розташовані в порядку зростання.

Напишіть програму, яка знаходить найменшу кількість розрізів, які ми можемо зробити, щоб розташувати отримані частини вказаним чином?

Input

Перший рядок містить одне ціле число ~N~ (~1 \le N \le 1 000 000~).

Наступні ~N~ рядків містять цілі числа - числа зі стрічки в тому порядку, в якому вони були записані на стрічку.

Output

Виведіть два цілі числа, розділені рівно одним пробілом: кількість зроблених розрізів і кількість чисел у найдовшій частині стрічки, отриманої в результаті розрізів.

Sample Input 1

12
12
1
2
4
5
6
7
10
11
3
8
9

Sample Output 1

5 4

Notes

Місце кожного розрізу позначається знаком |:

12 | 1 2 | 4 5 6 7 | 10 11 | 3 | 8 9

Найдовша частина стрічки після розрізів містить числа 4 5 6 7 і їх кількість 4.


Коментарі

Будь ласка, прочитайте правила перед коментуванням.



  • 0
    zvit  прокоментовано 21 Січ. 2025, 9:42

    Змінено формат вхідних даних - тепер числа вводяться з окремих рядків


  • 0
    detective  прокоментовано 5 Гру. 2024, 8:50

    що таке invalid return?


    • 0
      zvit  прокоментовано 5 Гру. 2024, 8:56 ← редагувань: 2

      помилка вводу-виводу.

      Зверніть увагу на обмеження по памʼяті!