broscute

Time limit: 0.03s Memory limit: 2MB Input: broscute.in Output: broscute.out

Pe un lac cu apă termală se află n+1n+1 frunze de nuferi. Pe nn dintre ele stau la soare nn broscuţe. Evident, o frunză este liberă şi broscuţele au început să se joace. În fiecare moment o broscuţă sare de pe frunza ei pe frunza liberă din acel moment.

Cerinţă

Numerotând frunzele de la 11 la n+1n+1, broscuţele de la 11 la nn, şi cunoscându-se ordinea iniţială a broscuţelor pe cele n+1n+1 frunze, să se determine numărul minim de sărituri ale broscuţelor de pe o frunză pe alta, astfel încât ele să se găsească într-o ordine finală, dată, precum şi săriturile realizate.

Date de intrare

Fişierul de intrare broscute.in conţine pe prima linie un număr natural nn reprezentând numărul de broscuţe separat printr-un spaţiu de un număr natural tt, care reprezintă cerinţa: 11, dacă se cere numărul de sărituri, respectiv 22 dacă se cere ordinea săriturilor. Linia a doua conţine n+1n+1 numere naturale reprezentând configuraţia iniţială a broscuţelor pe cele n+1n+1 frunze, iar linia a treia conţine n+1n+1 numere naturale reprezentând configuraţia finală a broscuţelor pe cele n+1n+1 frunze.

Date de ieşire

Fişierul de ieşire broscute.out va conţine pe prima linie un număr natural kk ce reprezintă numărul minim de sărituri, dacă cerinţa este 11. Dacă cerinţa este 22 fişierul de ieşire va conţine mai multe linii, pe fiecare dintre ele existând 33 numere naturale b s db \ s \ d, separate prin câte un spaţiu, care descriu săritura, reprezentând numărul broscuţei bb, frunza de pe care sare ss şi frunza pe care sare dd. În cazul în care la cerinţa 22 broscuţele nu fac nici o săritură se va afişa pe prima linie mesajul broscutele nu se joaca.

Restricţii şi precizări

  • 2n1 0002 \leq n \leq 1\ 000
  • În descrierea configuraţiilor din fişierul de intrare frunza liberă este reprezentată prin valoarea 00
  • Pentru cerința 11 se acordă 50%50\% din punctaj, iar pentru cerința 22 tot 50%50\% din punctaj.
  • În cazul în care cerința este 22 și numărul de sărituri afișate nu este minim dar realizează ajungerea la configurația finală se acordă doar 30%30\% din punctaj.

Exemplul 1

broscute.in

4 2
3 2 0 1 4
1 2 3 4 0

broscute.out

3 1 3 
1 4 1 
4 5 4

Explicație

Sunt 44 broscuţe, deci 55 frunze de nufăr. Cerinţa este 22.
Broscuţele vor face 33 sărituri:

  • broscuţa 33 sare de pe frunza 11 pe frunza 33
  • broscuţa 11 sare de pe frunza 44 pe frunza 11
  • broscuţa 44 sare de pe frunza 55 pe frunza 44

Exemplul 2

broscute.in

4 1
3 2 0 1 4
1 2 3 4 0

broscute.out

3

Exemplul 3

broscute.in

4 2
3 2 0 1 4
3 2 0 1 4

broscute.out

broscutele nu se joaca

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