Programmeringsolympiadens onlinekval 2019

Start

2018-10-15 21:00 UTC

Programmeringsolympiadens onlinekval 2019

End

2018-12-02 21:00 UTC
The end is near!
Contest is over.
Not yet started.
Contest is starting in -160 days 11:49:39

Time elapsed

1152:00:00

Time remaining

0:00:00

Problem E
Brevoptimering

Progolympkommittén, bestående av $N$ personer, ska skicka ut kuvert med affischer för kvalet till alla skolor. För att göra processen snabbare har de delat upp uppgifterna som behöver göras. Uppgifterna är bland annat att skriva adresser, sätta på frimärken, lägga i affischerna och stänga kuverten. När en person är klar med ett kuvert skickas det vidare till någon annan person. Det går inte lika snabbt som de hade hoppats på, och därför undrar de vilka som skulle kunna jobba snabbare.

Varje person $p$ har en egen maximal produktionshastighet $M_ p$ kuvert per sekund. Om vi låter $I_ p$ vara antalet kuvert som skickas till person $p$ per sekund och låter $U_ p$ vara antalet kuvert den blir klar med per sekund så är $U_ p = \min (I_ p, M_ p)$. En person blir alltså inte klar med fler än $M_ p$ brev per sekund, även om hen får fler att arbeta med. Varje person har dessutom att antal personer den skickar de kuvert hen blir klar med. Den behöver inte skicka lika mycket kuvert till varje person, utan varje person får en viss procent av kuverten $p$ skickar. De personer som ingen skickar kuvert till och som därmed är i början av produktionslinjen har $I_ p = \infty $, och därmed $U_ p = M_ p$ (de har en oändlig hög med kuvert att ta av). Vissa personer skickar inte vidare några kuvert alls, utan lägger dem bara i hög bredvid sig när de är klara.

För vilka personer gäller att $U_ p = M_ p$, det vill säga att de jobbar på sin maximala produktionshastighet?

Indata

Den första raden innehåller ett heltal $1 \le N \le 10^5$, antalet personer. De nästa $N$ raderna beskriver personerna. Rad $i$ innehåller först heltalet $M_ i$, den maximala produktionshastigheten för person $i$ ($1 \le M_ i \le 10^5$). Därefter kommer ett heltal $k$, och sedan $k$ par av heltal $j$ $w$, som betyder att person $i$ skickar $w$ procent av sina kuvert till person $j$ ($1 \le w \le 100$, $1 \le j \le N, i \neq j$). Inget $j$ kan förekomma mer än en gång på en given rad, och summan av $w$:na på raden kommer att vara $100$, såvida inte $k = 0$.

Låt $S$ beteckna summan av alla $k$. Då gäller $0 \le S \le 10^5$.

Produktionskedjan är designad på ett sådant sätt att ingen person kan få tillbaka ett brev de redan arbetat med.

Utdata

Skriv ut en rad med alla $i$ som uppfyller $U_ p = M_ p$, i stigande ordning.

Det garanteras att om $U_ p = M_ p$ så kommer detta stämma med marginal, mer specifikt $I_ p - M_ p > 10^{-4}$. Om tvärt om $U_ p \neq M_ p$ så kommer det finnas marginal åt andra hållet: $M_ p - I_ p > 10^{-4}$.

Poängsättning

Din lösning kommer att testas på en mängd testfallsgrupper. För att få poäng för en grupp så måste du klara alla testfall i gruppen.

Grupp

Poängvärde

Gränser

$1$

$12$

Varje person skickar brev till högst en person (d.v.s $k \leq 1$) och tar emot brev från max en person

$2$

$17$

Varje person tar emot brev från exakt en annan person, förutom person $1$ som inte tar emot från någon

$3$

$21$

Om person $i$ skickar till person $j$ så är $i < j$

$4$

$25$

$N, S \le 10$

$5$

$25$

Inga ytterligare begränsningar.

Förklaring av exempelfall

Här följer tre grafer som representerar de tre exempelfallen. Varje person representeras av en nod. På varje kant är mängden kuvert som skickas utskrivet i enheten kps, kuvert per sekund.

Notera att i testfallsgrupp $1$ skulle enbart exempelfall $1$ kunna förekomma, i testfallsgrupp $2$ enbart exempelfall $2$, och i testfallsgrupp $3$ enbart exempelfall $3$. I testfallsgrupp $4$ och $5$ skulle alla tre exempelfall kunna förekomma.

\includegraphics[width=0.8\textwidth ]{sample1}
Figure 1: Sample $1$
\includegraphics[width=0.8\textwidth ]{sample2}
Figure 2: Sample $2$
\includegraphics[width=0.8\textwidth ]{sample3}
Figure 3: Sample $3$
Sample Input 1 Sample Output 1
8
7 0
10 1 6 100
8 1 4 100
9 1 1 100
11 0
12 1 5 100
10 1 3 100
5 0
1 2 3 7 8
Sample Input 2 Sample Output 2
10
16 3 2 50 4 25 6 25
9 2 9 75 5 25
2 1 8 100
5 0
1 0
2 2 3 90 7 10
1 0
1 0
5 1 10 100
6 0
1 5 6 8 9
Sample Input 3 Sample Output 3
6
10 3 2 25 3 25 4 50
1000 1 5 100
1000 1 5 100
1000 1 6 100
1 1 6 100
1000 0
1 5