Kodowanie Efektywnych Algorytmów - Ćwiczenia 6
Poprzednie
Następne
Temat: Zadania rozgrzewkowe, ale nieco trudniejsze, c.d.
Lista zadań (wszystkie na sprawdzarce acm.edu.pl):
029 - Obrazy i pokoje |
030 - Wybieranie reprezentantów |
031 - Odwracanie kartek |
032 - Kto zje więcej pizzy? |
033 - Kalibracja lasera |
034 - Wieża z wiader |
017 - Układanie kart |
Obiecany kluczowy kawałek pseudokodu dla zadania "wybieranie reprezentantów":
for(i=0;i<2*n-2;i++) {
int value = person[k];
int oppvalue = 3- value;
person[k]=0;
prevalive[nextalive[k]] = prevalive[k];
nextalive[prevalive[k]] = nextalive[k];
int oppindex=next[k];
while (person[oppindex] != oppvalue)
if (!person[oppindex]) oppindex = nextalive[oppindex];
else oppindex = next[oppindex];
if (person[nextalive[k]] == value)
next[nextalive[k]] = nextalive[oppindex];
k=oppindex;
}