[BOJ 8485] BARMAN

View as PDF

Submit solution

Points: 1
Time limit: 1.0s
Memory limit: 128M

Problem types
Allowed languages
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text

Profesor Bajtych jest bajtnistrem Arytmetycznych Rzędów Modulo Arbitralne N. Rzędem liczby a modulo n nazywamy najmniejsze takie m > 0, że a · m jest podzielne przez n. Pracownicy Bajtnisterstwa zmuszeni są do grania w trudną grę w celu określenia ich pensji. Celem tej gry jest zapewnienie, by tylko osoby dobrze znające się na rzeczy zarabiały największe pieniądze.</p>

Bajtych wybiera ciąg k liczb ai i n. Pracownik dostaje do swojej wiadomości jedynie rzędy ai modulo n. Może on poprosić Bajtycha o wykonanie co najwyżej 2k operacji polegających na tym, że przemnaża się wszystkie liczby w pewnym spójnym podciągu ai przez jakąś liczbę c. Bajtych płaci pracownikowi tyle B\$, ile wynosi rząd sumy ai modulo n po wykonaniu wszystkich operacji.

Po kilku miesiącach urzędnicy BARMAN zorientowali się, że Bajtych jest bardzo zachłanny. W rzeczywistości wybiera on liczby n i ai dopiero po tym, jak dostanie wszystkie operacje. Twoim zadaniem jest napisanie programu, który zasugeruje, jakie operacje należy wykonać, by Bajtych musiał nam zapłacić jak najwięcej.

Napisz program, który:

  • wczyta opis ciągu ze standardowego wejścia,
  • znajdzie optymalny ciąg operacji,
  • wypisze wynik na standardowe wyjście.
## 입력 형식

W pierwszym wierszu podana jest jedna liczba 1 ≤ k ≤ 100. Drugi wiersz zawiera k liczb mi, 1 ≤ mi < 264. Liczba mi jest rzędem ai modulo n.

출력 형식

Wynikiem ma być opis ciągu operacji. W pierwszym wierszu ilość operacji p. W każdym z następnych p wierszy należy podać trzy liczby liri i ci, gdzie 1 ≤ ci < 264. Oznaczają one, że i-ta operacja polega na pomnożeniu wszystkich liczb od ali</sub> do ari</sub> przez ci.

예제 입력

3
6 10 15

예제 출력

3
2 3 6
1 1 5
3 3 5

Comments

There are no comments at the moment.