Doprogramovanie do: 13. február 2023 23:59
11 dní
Popisy už neodovzdávajte. Ešte stále však môžete odosielať vaše programy, za ktoré dostanete časť bodov.
Počet bodov:
Popis:  12b
Program:  8b

Každý rok sa v T2 koná Každoročná Slávnosť Priečinkov (KSP). Vedúci púšťajú hity z entertainmenta, popíjajú kofolu a pun-ishujú sa tými najhoršími slovnými hračkami, aké ste kedy počuli.

Odovzdávajú si tiež priečinky! Konkrétne, vedúci ktorí majú v skrini vlastný priečinok ho niekedy prenechajú novému prvákovi. Priečinky sú veľmi praktické - môžu si v nich nechávať zošity do školy, materiály o najbližšom sústredení, pokazené routery, nedojedené desiaty…

Využitie priečinku sa však časom často mení. Niektorí ho v prváku naplnia vecami a potom naňho zabudnú. Iným príde najprv nepodstatný a až po rokoch zistia, že sa bez neho zrazu nezaobídu.

Z historických záznamov máš o mnoho vedúcich informácie o ich narábaním s priečinkami.

Presnejšie, o vedúcom číslo \(i\) vieš, že sa stal prvákom v roku \(p_i\) a priečinok využíval \(a_i\) veľa, zatiaľ čo ho už chcel odovzdať v roku \(o_i\) keď svoj priečinok využíval \(b_i\) veľa. Samozrejme, prenechal ho na KSP len takému prvákovi, ktorý by jeho priečinok využil ostro viac ako on.

Môže sa stať, že vedúci \(x\) odovzdá svoj priečinok prvákovi \(y\), ktorý neskôr odovzdá svoj priečinok prvákovi \(z\) a tak ďalej. Takúto sériu odovzdávaní nazveme životná púť priečinka. Keď vedúci \(x\) odovzdá priečinok vedúcemu \(y\), využitie priečinka stúpne o \(a_y - b_x\). Radosť, ktorú priečinok prináša vedúcemu, ktorý ho vlastní, je úmerná jeho využitu – preto túto hodnotu nazývame radosť odovzdávania. hodnota životnej púte priečinka je súčet radostí odovzdávania, ktoré počas tejto púte nastali.

Zo záznamov nie je jasné, kto komu priečinok naozaj aj odovzdal. Životné púte priečinkov sú tak stratené v histórií. Nič ti však nebráni upustiť uzdu fantázií, a predstaviť si tie najlepšie, najhodnotejšie púte, ktoré priečinky v T2 mohli zažiť. Keďže však musíme fantázií pokladať nejaké medze, predstavíš si len \(k\) najhodnotnejších z nich…

Úloha

Zistite, akých \(k\) najhodnotnejších životných pútí sa mohlo počas rokov KSP odohrať. Dve životné púte priečinka považujeme za rôzne, ak sú postupnosti vedúcich, ktorí ho vlastnili, iné.

Nemusíš nám ich detailne vypisovať. Stačí, ak vypíšeš súčet ich hodnôt modulo \(10^9+7\).

Formát vstupu

V prvom riadku vstupu sú čísla \(n\) a \(k\), udávajúce počet vedúcich, o ktorích máš záznam a počet najhodnotnejších životných pútí, ktoré ťa zaujímajú.

V \(i\)-tom z nasledujúcich \(n\) riadkov sú štyri čísla \(p_i\), \(o_i\), \(a_i\) a \(b_i\).

Platí \(1 \leq p_i < o_i \leq 10^9\), \(1 \leq a_i, b_i \leq 10^9\) a \(1 \leq n \cdot k \leq 10^6\).

V jednotlivých sadách platia nasledujúce obmedzenia pre \(n\) a \(k\):

Sada 1 2 3 4
\(1 \leq n \leq\) \(20\) \(1\,000\) \(10^6\) \(10^6\)
\(1 \leq k \leq\) \(20\) \(1\) \(1\) \(10^6\)

Formát výstupu

Vypíš jeden riadok a v ňom jedno celé číslo - súčet hodnôt \(k\) najhodnotnejších životných pútí, ktoré mohli počas rokov KSP nastať, modulo \(10^9+7\). Ak ich mohlo nastať menej ako \(k\), vypíš súčet všetkých z nich (stále modulo \(10^9+7\)).

Príklady

Input:

5 1
1 2 10 9
1 4 7 11
2 4 15 16
4 5 20 1
5 7 2 5

Output:

11

Najhodnotnejšia možná životná púť priečinka je, aby prvý vedúci odovzdal priečinok tretiemu, ten potom štvrtému a ten nakoniec piatemu.

Input:

5 4
1 2 10 9
1 4 7 11
2 4 15 16
4 5 20 1
5 7 2 5

Output:

40

Druhá a tretia najhodnotnejšia púť sú prvý-tretí-štvrtý, druhý-štvrtý-piaty s hodnotou 10. Štvrtá najhodnotnejšia púť, s hodnotou 9, je druhý-štvrtý

Input:

3 1
1 1000000 1 1
1000000 50000000 1000000000 1
50000000 1000000000 1000000000 474747

Output:

999999991

Najhodnotejšia púť je prvý-druhý-tretí s hodnotou \((1000000000-1)+(1000000000-1)=1999999998\), modulo \(10^9+7 = 999999991\)

Input:

10 1
1 2 1 4
1 3 5 3
3 5 7 2
2 4 6 9
2 3 7 5
3 5 8 2
1 8 9 1
4 5 10 3
5 8 6 47
8 9 10 5

Output:

10

Input:

10 5
1 2 1 4
1 3 5 3
3 5 7 2
2 4 6 9
2 3 7 5
3 5 8 2
1 8 9 1
4 5 10 3
5 8 6 47
8 9 10 5

Output:

45

Input:

10 25
1 2 1 4
1 3 5 3
3 5 7 2
2 4 6 9
2 3 7 5
3 5 8 2
1 8 9 1
4 5 10 3
5 8 6 47
8 9 10 5

Output:

113

Existuje len 22 životných pútí, sčítame teda všetky

Odovzdávanie

Na odovzdávanie sa musíš prihlásiť

Otázky a diskusia

Po skončení kola budete mať príležitosť na diskutovanie o riešeniach v diskusii pod vzorovým riešením.