rafturi

Time limit: 0.1s Memory limit: 4MB Input: rafturi.in Output: rafturi.out

Într-o bibliotecă se află CC dulapuri identice aşezate unul lângă altul pe peretele unei încăperi, dulapurile fiind numerotate de la stânga spre dreapta cu numerele naturale de la 11 la CC. Fiecare dulap conţine 1 0001 \ 000 de rafturi, situate vertical unul deasupra altuia, rafturile fiecărui dulap fiind numerotate de la 11 la 1 0001 \ 000 de jos în sus.

Fiecare dulap este prevăzut cu o scară cu care se poate ajunge la orice raft. Dacă bibliotecara urcă scara unui anumit dulap DD până la un anumit nivel kk, ea va putea aduna orice carte de pe rafturile 11 până la kk inclusiv, din dulapul DD şi din dulapurile învecinate (dulapul D1D-1 şi dulapul D+1D+1).

Cunoscând dulapurile şi rafturile de unde trebuie luate cărţi, bibliotecara doreşte să adune toate cărţile cerute, dar suma înălţimilor până la care trebuie să urce să fie minimă.

Cerință

Scrieţi un program care să determine suma minimă a înălţimilor până la care trebuie să urce bibliotecara pentru a aduna toate cărţile cerute.

Date de intrare

Prima linie a fişierului de intrare rafturi.in conţine două numere naturale CC şi NN, separate printr-un spaţiu, reprezentând numărul dulapurilor şi respectiv numărul cărţilor pe care bibliotecara trebuie să le adune.

Următoarele NN linii conţin câte două numere naturale aa și bb, separate printr-un spaţiu, reprezentând numărul dulapului, respectiv numărul raftului de unde trebuie luată o carte.

Date de ieșire

Fişierul de ieşire rafturi.out va conţine un singur număr natural reprezentând suma minimă a înălţimilor până la care trebuie să urce bibliotecara pentru a aduna toate cărţile cerute.

Restricții și precizări

  • 1C10 0001 \leq C \leq 10 \ 000
  • 1N50 0001 \leq N \leq 50 \ 000

Exemplu

rafturi.in

10 4
5 4
1 1
6 2
3 8

rafturi.out

11

Explicație

Bibliotecara urcă astfel:

  • pe dulapul 11 la raftul 11
  • pe dulapul 44 la raftul 88
  • pe dulapul 66 la raftul 22

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