Alchimie

Time limit: 0.2s Memory limit: 16MB Input: alchimie.in Output: alchimie.out

Merg sigur, dar încet. Nu e foarte grea, e numai alchimie!
– Jean Carapace

În laboratoarele Marii Ghilde, ucenicul Jean Carapace are pe masa de lucru NN eprubete așezate în linie. Eprubetele sunt numerotate de la stânga la dreapta cu indici de la 11 la NN. Fiecare eprubetă ii conține inițial o cantitate de Esență Primordială, ViV_i, număr natural nenul. Definim o „Pereche Pură” ca fiind două eprubete vecine ale căror cantități sunt reprezentate prin numere prime între ele, adică cmmdc(Vi,Vi+1)=1\text{cmmdc}(V_i, V_{i+1}) = 1. O proprietate esențială a configurației inițiale este că se garantează existența a cel puțin unei astfel de perechi.

Scopul lui este să obțină „Scara Perfectă”, adică o configurație în care cantitatea de esență din fiecare eprubetă este egală cu indicele ei:

Pentru a modifica nivelul substanței, el poate folosi doar fenomenul de Rezonanță între două eprubete vecine. Mai exact, operațiile se aplică pe două eprubete situate la indicii AA și BB, cu condiția ca AB=1|A - B| = 1. Operațiile permise sunt:

  • adun A B     VAVA+VB\implies V_A \leftarrow V_A + V_B (Eprubeta AA câștigă o cantitate de esență egală cu valoarea din eprubeta BB)
  • scad A B     VAVAVB\implies V_A \leftarrow V_A - V_B (Eprubeta AA pierde o cantitate de esență egală cu valoarea din eprubeta BB)

La aplicarea operațiilor, trebuie respectate următoarele reguli:

  1. La fiecare operație, doar eprubeta cu indicele AA își modifică valoarea. Eprubeta cu indicele BB rămâne neschimbată.
  2. Cantitatea de esență din orice eprubetă trebuie să se mențină în intervalul de siguranță [1,105][1, 10^5] în orice moment (inclusiv intermediar).
  3. Numărul total de operații nu poate depăși 10610^6.

Cerință

Se cunosc CC (numărul cerinței, 11 sau 22), NN numărul de eprubete, precum și valorile ViV_i. Determinați:

  1. Secvența de lungime maximă din șir în care oricare două eprubete alăturate formează o Pereche Pură, dacă C=1C = 1. Dacă există mai multe astfel de secvențe, se va afișa cea cu indicele de început minim.
  2. O succesiune de operații care transformă șirul inițial în Scara Perfectă, respectând toate regulile de mai sus, dacă C=2C = 2.

Date de intrare

Fișierul de intrare alchimie.in conține:

  • Pe prima linie: două numere naturale CC și NN, cu semnificația din enunț.
  • Pe a doua linie: NN numere naturale V1,V2,,VNV_1, V_2, \dots, V_N, separate prin câte un spațiu, reprezentând cantitățile inițiale de esență din fiecare eprubetă.

Date de ieșire

Fișierul de ieșire alchimie.out va conține:

  • Două numere naturale PinceputP_{inceput} și PfinalP_{final}, separate prin exact un spațiu, reprezentând indicii de început, respectiv de final ai secvenței determinate, dacă C=1C = 1.
  • Dacă C=2C = 2:
    • Pe prima linie numărul total de operații KK.
    • Pe următoarele KK linii operațiile în formatul tip_operatie A B, câte o operație pe fiecare linie.

Restricții și precizări

  • 2N1042 \le N \le 10^4;
  • 1Vi1051 \le V_i \le 10^5 atât inițial, cât și în orice moment intermediar;
  • Se garantează existența soluției respectând limita de maximum 10610^6 operații pentru C=2C = 2;
  • Se garantează că există cel puțin o Pereche Pură în șirul dat.
# Punctaj Restricții
1 13 C=1C = 1 și N,Vi200N, V_i \le 200
2 16 C=1C = 1 și N104,Vi105N \le 10^4, V_i \le 10^5
3 11 C=2C = 2 și Vi=1V_i = 1 pentru toți indicii iNi \le N
4 11 C=2,N,Vi200C = 2, N, V_i \le 200 și există măcar un ii cu Vi=1V_i = 1
5 14 C=2C = 2 și N,Vi200N, V_i \le 200
6 13 C=2C = 2 și N104,Vi103N \le 10^4, V_i \le 10^3
7 22 C=2C = 2 și N104,Vi105N \le 10^4, V_i \le 10^5

Exemplul 1

alchimie.in

1 5
10 5 12 7 14

alchimie.out

2 4

Explicație

Perechea (10,5)(10, 5) are cmmdc(10,5)=51\text{cmmdc}(10, 5) = 5 \ne 1. Perechea (5,12)(5, 12) are cmmdc(5,12)=1\text{cmmdc}(5, 12) = 1. Perechea (12,7)(12, 7) are cmmdc(12,7)=1\text{cmmdc}(12, 7) = 1. Perechea (7,14)(7, 14) are cmmdc(7,14)=71\text{cmmdc}(7, 14) = 7 \ne 1.

Exemplul 2

alchimie.in

2 2
2 3

alchimie.out

3
scad 2 1
scad 1 2
adun 2 1

Explicație

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