아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Kulude jagamine

시간 제한1초메모리 제한1024 MB

요약
친구들이 각자 낸 공동 비용을 정산해 모두 같은 금액을 부담하도록 만드는, 총액이 최소인 송금 목록을 구한다.
난이도

보통10점 중 5점

유형
그리디, 정렬, 구현, 배열
정답자
아직 제출이 없습니다

문제

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 (1≤N≤50,0001 \le N \le 50\\,000) ja tehtud kulutuste arv MM (0≤M≤50,0000 \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 (1≤X≤N1 \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 1,000,000,0001\\,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 (1≤X≤N1 \le X \le N, 1≤Y≤N1 \le Y \le N, X≠YX \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

  1. 예제 1

    입력
    4 2
    1 12
    2 20
    
    예상 출력
    16
    3
    4 1 4
    4 2 4
    3 2 8