Žirafa


Submit solution

Points: 70 (partial)
Time limit: 2.0s
Memory limit: 64M

Author:
Problem type
Allowed languages
Assembly, Awk, C, C++, Java, Perl, Python

Županijska razina 2020 / Osnovna škola (7. razred) - 2. zadatak

Napomena: nisu dodani test podaci jer ih nije bilo na informatika.azoo.hr

Maksimilijan je upravo saznao da se uspješno plasirao na Državno natjecanje iz informatike! Odlučio je o tome obavijestiti svojih N prijatelja. To neće biti lak zadatak jer Maksimilijan ne koristi mobitel, on radije vrijeme provodi s prijateljima i u prirodi.

Srećom, Maksimilijan posjeduje Pozivatelj 2020, uređaj kojim naziva prijatelje u ovakvim kriznim situacijama. Uređaj se sastoji od ekrana koji prikazuje broj između 0 i 999 s točno tri znamenke (broj 0 je prikazan kao 000, broj 31 kao 031 …) te dvije tipke. Vidi sliku.

Svaki od Maksimilijanovih N prijatelja ima pozivni broj Bi između 0 i 999. Ne postoje dva prijatelja s istim pozivnim brojem. Maksimilijan želi nazvati sve prijatelje pomoću svog uređaja u što kraćem vremenu, a pritom ih smije zvati bilo kojim redoslijedom. Na početku na ekranu piše broj P.

Kada odluči pritisnuti tipku „+“:

  • broj ispisan na ekranu prelazi u broj za jedan veći (npr. 099 → 100 ili 255 → 256), osim broja 999 koji prelazi u 000.

Vrijeme potrebno da se broj na ekranu promijeni nakon što je pritisnut znak „+“ iskazano je u sekundama i jednako je broju znamenaka koje se moraju promijeniti na ekranu (npr. promjena 099 → 100 traje 3 sekunde, 255 → 256 traje 1 sekundu, 889 → 890 traje 2 sekunde).

Napomena: u promjeni 889 → 890 moraju se promijeniti 2 znamenke. Novi broj također sadrži znamenku 9, ali ne na istom mjestu.

Kada odluči pritisnuti tipku za poziv:

  • ako je na ekranu pozivni broj nekog prijatelja, on će ga nazvati;
  • tada poziv i razgovor zajedno traju 5 sekundi. Maksimilijan je učinkovit pa će utrošiti vrijeme jedino kada odluči pritisnuti tipku „+“ (1, 2 ili 3 sekunde) te kada odluči pritisnuti tipku za poziv (5 sekundi). Vrijeme između pritiskanja tipki zanemarujemo.

Pomozi Maksimilijanu i izračunaj koliko će mu najmanje vremena trebati da nazove i podijeli sretne vijesti sa svim svojim prijateljima. Pogledaj opis prvog probnog primjera za dodatna pojašnjenja.

Ulazni podaci

U prvom je retku prirodan broj N (1 ≤ N ≤ 100), broj prijatelja iz teksta zadatka.

U drugom je retku cijeli broj P (0 ≤ P ≤ 999), broj koji se na početku nalazi na ekranu.

U i-tom od sljedećih N redaka je cijeli broj Bi (0 ≤ Bi ≤ 999), pozivni broj i-tog prijatelja.

Izlazni podaci

U jedini redak ispiši najmanje vrijeme u sekundama potrebno da Maksimilijan nazove sve prijatelje.

Primjeri test podataka

Ulaz
2
45
50
46
Izlaz
16
Objašnjenje

Na ekranu je na početku ispisano 045, kao na slici u tekstu zadatka. U tablici je opisan optimalan način pritiskanja tipki kojim Maksimilijan može nazvati sve prijatelje.

Ulaz
3
999
0
999
1
Izlaz
19

Ulaz
3
750
0
760
20
Izlaz
315

Comments

There are no comments at the moment.