Kulude jagamine | 프로그래밍의 벗 PivotOJ
PivotOJ

Kulude jagamine

시간 제한: 1000ms메모리 제한: 1024MB출처: EIO 2022-23 prelimBOJ 29831

문제

NN sõpra käisid Informaatika Maailmameistrivõistlustel. Võistlusel osalemine tekitas neile erinevaid ühiseid kulutusi, kusjuures iga kulu eest maksis üks sõpradest.

Pärast võistlust soovivad sõbrad kulud võrdselt ära jagada. Leida minimaalse kogusummaga pangaülekannete komplekt, mille abil seda teha.

입력

Sisendi esimesel real on sõprade arv NN (1N500001 \le N \le 50\,000) ja tehtud kulutuste arv MM (0M500000 \le M \le 50\,000). Tähistame sõpru arvudega 1,,N1, \ldots, N.

Järgmisel MM real on tehtud kulutuste andmed. Igal real on täisarvud XX ja SS, kus XX (1XN1 \le X \le N) on selle selle sõbra number, kes maksis, ja SS (S>0S > 0) on makstud summa. Võib eeldada, et kõik makstud summad jaguvad täpselt sõprade arvuga ja et kõigi kulude kogusumma ei ületa 10000000001\,000\,000\,000.

출력

Esimesele reale väljastada lahenduseks olevate pangaülekannete kogusumma KK.

Teisele reale väljastada ülekannete arv PP. Järgmisele PP reale väljastada igaühele kolm tühikutega eraldatud täisarvu XX, YY ja SS (1XN1 \le X \le N, 1YN1 \le Y \le N, XYX \ne Y, S>0S > 0), mis näitavad, et sõber XX kannab sõbrale YY üle summa SS.

Kõigi ülekannete kogusumma peab olema vähim võimalik. Kui sobivaid ülekannete komplekte on mitu, väljastada ükskõik milline neist.

예제

예제 1

입력
4 2
1 12
2 20
출력
16
3
4 1 4
4 2 4
3 2 8
이 문제는 채점 준비 중입니다. 테스트 데이터가 확보되면 제출이 가능합니다.