Klucz odpowiedzi

Etap III

Punktowanie zadań

5 punktów za prawidłową odpowiedź

0 punkty za brak odpowiedzi

0 punktów za błędną odpowiedź

Za każde pytanie można otrzymać 5 punktów. Za poprawnie napisany program można otrzymać 50 punktów (po 5 punktów za każdy test).

Uczniowie klas 4-6 mogli otrzymać maksymalnie 300 punktów, natomiast uczniowie klas 7-8 mieli możliwość zdobyć 400 punktów za wszystkie zadania.


Odpowiedzi na pytania, przykładowy poprawny program oraz wymagane testy dla zadania

Płatność Krańcowa

Odpowiedzi na pytania (po 5 punktów)

Przykładowe rozwiązanie (50 punktów)

Testy sprawdzające

  • Pytanie 1.1: 66
  • Pytanie 1.2: 5
  • Pytanie 1.3: 37
  • Pytanie 1.4: 55
  • Pytanie 1.5: 99
  • Pytanie 1.6: 120
  • Pytanie 1.7: 67
  • Pytanie 1.8: 99
  • Pytanie 1.9: 68
  • Pytanie 1.10: 84

Zadania polega na zsumowaniu złotówek i groszy dwóch kwot z przeniesieniem. Jeżeli suma groszy przekracza 99 odejmujemy od niej 100 i dodajemy 1 do sumy złotówek. Należy również pamiętać o zachowaniu odpowiedniego formatu wyjścia w przypadku końcowej liczby groszy mniejszej od 10.

Najkrótsze rozwiązanie nadesłane przez finalistów przedstawiamy poniżej.

Rozwiązanie wzorcowe:

1. Wczytaj do A
2. Wczytaj do B
3. Wczytaj do C
4. Wczytaj do D
5. Zwiększ A o C
6. Zwiększ B o D
7. Jeżeli B ≥ 100 skocz do następnej inaczej skocz do 10
8. Zmniejsz B o 100
9. Zwiększ A o 1
10. Wypisz pudełko A
11. Wypisz napis '.'
12. Jeżeli B ≤ 10 skocz do następnej inaczej skocz do 14
13. Wypisz napis '0'
14. Wypisz pudełko B
1. ? 4 ? 10 ? 3 ? 75 7.85
2. ? 0 ? 90 ? 0 ? 21 1.11
3. ? 6 ? 71 ? 5 ? 78 12.49
4. ? 0 ? 33 ? 0 ? 67 1.00
5. ? 13 ? 58 ? 0 ? 50 14.08
6. ? 1 ? 80 ? 6 ? 25 8.05
7. ? 71 ? 71 ? 148 ? 14 219.85
8. ? 6649 ? 76 ? 6374 ? 23 13023.99
9. ? 5645 ? 86 ? 7345 ? 21 12991.07
10. ? 10000 ? 99 ? 10000 ? 81 20001.80

Odpowiedzi na pytania, przykładowy poprawny program oraz wymagane testy dla zadania

Interesujące Transakcje

Odpowiedzi na pytania (po 5 punktów)

Przykładowe rozwiązanie (50 punktów)

Testy sprawdzające

  • Pytanie 2.1: 3
  • Pytanie 2.2: 16
  • Pytanie 2.3: 6
  • Pytanie 2.4: 7
  • Pytanie 2.5: 54
  • Pytanie 2.6: 31
  • Pytanie 2.7: 47
  • Pytanie 2.8: 38
  • Pytanie 2.9: 12
  • Pytanie 2.10: 114

W zadaniu należy użyć dwóch pudełek do zapamiętania kwoty największej trasakcji oraz jej numeru. Trzeba również uważnie wybrać warunek skoku w instrukcji 5 aby zapisać ostatnie wystąpienie transakcji.

Rozwiązanie wzorcowe:

1. Ustaw A na 1
2. Ustaw B na 1
3. Jeżeli A = 0 skocz do 10 inaczej skocz do następnej
4. Wczytaj do A
5. Jeżeli A >= C skocz do następnej inaczej skocz do 8
6. Ustaw C na A
7. Ustaw D na B
8. Zwiększ B o 1
9. Skocz do 3
10. Wypisz pudełko D
11. Przejdź do nowej linii
12. Wypisz pudełko C
1. ? 3 ? 4 ? 20 ? 30 ? 0 4 30
2. ? 2 ? 7 ? 20 ? 4 ? 0 3 20
3. ? 9 ? 38 ? 14 ? 29 ? 98 ? 44 ? 48 ? 10 ? 71 ? 29 ? 53 ? 84 ? 6 ? 98 ? 82 ? 85 ? 49 ? 31 ? 0 14 98
4. ? 4033 ? 1205 ? 8684 ? 9192 ? 8793 ? 5183 ? 9773 ? 0 7 9773
5.

Test zawierał 84 transakcje. Interesująca transakcja o kwocie 994 znajdowała się na pozycji 74

6.

Test zawierał 84 transakcje. Interesująca transakcja o kwocie 997 znajdowała się na pozycji 81

7.

Test zawierał 97 transakcji. Interesująca transakcja o kwocie 994 znajdowała się na pozycji 28

8

Test zawierał 755 transakcji. Interesująca transakcja o kwocie 998 znajdowała się na pozycji 436

9.

Test zawierał 1000 transakcji. Interesująca transakcja o kwocie 9995 znajdowała się na pozycji 799

10.

Test zawierał 1000 transakcji. Interesująca transakcja o kwocie 9998 znajdowała się na pozycji 65


Odpowiedzi na pytania, przykładowy poprawny program oraz wymagane testy dla zadania

Plansze i pola

Odpowiedzi na pytania (po 5 punktów)

Przykładowe rozwiązanie (50 punktów)

Testy sprawdzające

  • Pytanie 3.1: 15
  • Pytanie 3.2: 4
  • Pytanie 3.3: 2-3
  • Pytanie 3.4: 54
  • Pytanie 3.5: 10
  • Pytanie 3.6: 7-3
  • Pytanie 3.7: 48
  • Pytanie 3.8: 117
  • Pytanie 3.9: 12-9
  • Pytanie 3.10: 10-20

W zadaniu należy zauważyć, że dla planszy o rozmiarze NxN pierwszy wiersz od góry będzie zawierał wszystkie pola o numerach od 1 do N włącznie, drugi wiersz od góry będzie zawierał wszystkie pole o numerach od N + 1 do 2 * N, trzeci wszystkie pola od 2 * N + 1 do 3 * N, itd.

Aby poznać numer wiersza, przechodzimy po wierszach od góry do dołu w pętli i sprawdzamy, czy numer pola jest mniejszy od maksymalnego numeru pola w danym wierszu. W celu znalezienia rzędu musimy odjąc największy numer pola w poprzednim wierszu od numeru naszego pola.

1. Wczytaj do A
2. Wczytaj do B
3. Jeżeli A = 1 skocz do następnej inaczej skocz do 8
4. Wypisz pudełko A
5. Wypisz napis '-'
6. Wypisz pudełko A
7. Skocz do do końca
8. Ustaw C na 0
9. Ustaw D na 0
10. Jeżeli D < B skocz do następnej inaczej skocz do 14
11. Zwiększ D o A
12. Zwiększ C o 1
13. Skocz do 10
14. Jeżeli D = B skocz do następnej inaczej skocz do 19
15. Wypisz pudełko C
16. Wypisz napis '-'
17. Wypisz pudełko A
18. Skocz do do końca
19. Ustaw D na C
20. Zmniejsz C o 1
21. Jeżeli C ≥ 1 skocz do następnej inaczej skocz do 25
22. Zmniejsz B o A
23. Zmniejsz C o 1
24. Skocz do 21
25. Wypisz pudełko D
26. Wypisz napis '-'
27. Wypisz pudełko B

Uczestnikom udało się zapisać program za pomocą jedynie 10 instrukcji:

1. Wczytaj do A
2. Wczytaj do B
3. Ustaw C na 1
4. Jeżeli B > A skocz do następnej inaczej skocz do 8
5. Zmniejsz B o A
6. Zwiększ C o 1
7. Skocz do 4
8. Wypisz pudełko C
9. Wypisz napis '-'
10. Wypisz pudełko B
1. ? 8 ? 20 3-4
2. ? 5 ? 20 4-5
3. ? 10 ? 93 10-3
4. ? 34 ? 561 17-17
5. ? 50 ? 873 18-23
6. ? 100 ? 8809 89-9
7. ? 1 ? 1 1-1
8. ? 100 ? 10000 100-100
9. ? 69 ? 69 1-69
10. ? 42 ? 1723 42-1

Odpowiedzi na pytania, przykładowy poprawny program oraz wymagane testy dla zadania

Poczta (dla klas 7-8)

Odpowiedzi na pytania (po 5 punktów)

Przykładowe rozwiązanie (50 punktów)

Testy sprawdzające

  • Pytanie 4.1: 5
  • Pytanie 4.2: 69
  • Pytanie 4.3: 5
  • Pytanie 4.4: 3
  • Pytanie 4.5: 45
  • Pytanie 4.6: 35
  • Pytanie 4.7: 11
  • Pytanie 4.8: 9
  • Pytanie 4.9: 54
  • Pytanie 4.10: 42

Zadanie jest trudniejszą wersją zadania Płatność Krańcowa. Zamiast sumować dwie różne kwoty należy przemnożyć jedną kwotę odpowiednią liczbę razy za pomocą pętli pamiętając przy tym o przeniesieniu groszy oraz zachowaniu odpowiedniego formatu.

Rozwiązanie wzorcowe:

1. Wczytaj do A
2. Wczytaj do B
3. Wczytaj do C
4. Ustaw D na 0
5. Jeżeli A > 0 skocz do następnej inaczej skocz do 9
6. Zmniejsz A o 1
7. Zwiększ D o 100
8. Skocz do 5
9. Zwiększ B o D
10. Jeżeli C > 0 skocz do następnej inaczej skocz do 14
11. Zwiększ A o B
12. Zmniejsz C o 1
13. Skocz do 10
14. Ustaw B na 0
15. Jeżeli A ≥ 100 skocz do następnej inaczej skocz do 19
16. Zmniejsz A o 100
17. Zwiększ B o 1
18. Skocz do 15
19. Wypisz pudełko B
20. Wypisz napis '.'
21. Jeżeli A < 10 skocz do następnej inaczej skocz do 23
22. Wypisz napis '0'
23. Wypisz pudełko A
1. ? 2 ? 30 ? 3 6.90
2. ? 3 ? 40 ? 3 10.20
3. ? 4 ? 37 ? 4 17.48
4. ? 0 ? 25 ? 4 1.00
5. ? 61 ? 1 ? 2 122.02
6. ? 71 ? 1 ? 8 568.08
7. ? 32 ? 13 ? 0 0.00
8. ? 50 ? 99 ? 50 2549.50
9. ? 36 ? 64 ? 48 1758.72
10. ? 45 ? 8 ? 38 1713.04
Powrót