Suurimad ühistegurid | 프로그래밍의 벗 PivotOJ
PivotOJ

Suurimad ühistegurid

시간 제한: 1000ms메모리 제한: 1024MB출처: EIO 2017-18 sel2BOJ 29983

문제

Bit koristab oma riidekappi, kus tal on hulk programmeerimisvõistluste T-särke. Särgid on mitmel riiulil erineva kõrgusega virnades.

Bit on juba lapsest saadik armastanud suurima ühisteguriga seotud mänge ja otsustas paigutada särgid riiulitele nii, et kui ta vaatab virnades olevate särkide arve, leiab iga riiuli jaoks nende arvude suurima ühisteguri ja liidab siis nende ühistegurite väärtused kokku, on tulemus maksimaalne võimalik.

Näiteks kui tal on esimesel riiulil ühes virnas 6 ja teises 9 särki, teisel riiulil ainult üks 2 särgiga virn ja kolmandal riiulil kolm virna vastavalt 5, 6 ja 7 särgiga, siis on otsitav summa gcd(6,9)+gcd(2)+gcd(5,6,7)=3+2+1=6\gcd(6, 9) + \gcd(2) + \gcd(5, 6, 7) = 3 + 2 + 1 = 6.

Muidugi sai Bit kohe aru, et maksimaalse summa saamiseks tuleks iga särgivirn eraldi riiulile panna. See oleks aga liiga lihtne ja et mäng oleks põnevam, otsustas ta, et igal riiulil peab olema kas vähemalt DD virna või peab riiul olema täiesti tühi (ja tühja riiuli suurim ühistegur on 00).

Lisaks ei taha Bit oma särkide järjekorda liiga palju muuta, sest need on tal võistluste ja aastate kaupa sorteeritud. Sellepärast tõstab ta särke ümber ainult järgmise reeglite kohaselt:

  • riiuli parempoolseima virna võib tõsta vahetult all oleva riiuli vasakpoolseimaks (välja arvatud kõige alumise riiuli korral);
  • riiuli vasakpoolseima virna võib tõsta vahetult ülal oleva riiuli parempoolseimaks (välja arvatud kõige ülemise riiuli korral).

Kirjutada programm, mis leiab maksimaalse ühistegurite summa, mille Bit saavutada võib, kui tal on palju aega ja ta võib särgivirnu ühelt riiulilt teisele tõsta kuitahes palju kordi.

입력

Tekstifaili esimesel real on riiulite arv NN, särgivirnade koguarv MM ja mitte\-tühja riiuli virnade arvu miimimum DD (1DMN5000001 \le D \le M \le N \le 500\,000).

Järgmisel NN real on riiulite kirjeldused. Iga rea alguses on riiulil olevate särgivirnade arv KiK_i (0KiM0 \le K_i \le M) ja selle järel KiK_i täisarvu Xi,jX_{i,j} (1Xi,j1091 \le X_{i,j} \le 10^9), mis näitavad, mitu särki igas virnas on. Riiulite kirjeldused on antud ülalt alla ja virnade kirjeldused vasakult paremale.

출력

Tekstifaili ainsale reale väljastada üks täisarv: maksimaalne ühistegurite summa, mille Bit saavutada võib.

예제

예제 1

입력
3 3 1
0
2 1 3
1 2
출력
6

예제 2

입력
6 5 2
2 4 8
1 1
0
0
0
2 3 6
출력
5
코드를 제출하려면 로그인하세요.