Poniżej linki do wszystkich zagadnień 10-tych zajęć Olimpijskiego Koła Informatycznego.
–
Rozwiązaliśmy zadania które pozwolą nam zdobyć kolejne 100 punktów na Olimpiadzie Informatycznej Juniorów (https://oij.edu.pl/)
–
Zadanie Teams Forming (kod na dole strony):
https://youtu.be/sQ99vyC2lJ4?t=960
oraz zadanie Trójkąt:
https://youtu.be/sQ99vyC2lJ4?t=5646
–
Obydwa te zadania pozwolą nam rozwiązać zadanie Deski z Olimpiady Informatycznej Juniorów:
https://youtu.be/sQ99vyC2lJ4?t=4188
–
Czyli kolejna 100-tka na Olimpiadzie.
Tak ma być!!!
———–
Na zajęciach nauczyliśmy się jak SORTOWAĆ liczby w C++:
https://youtu.be/sQ99vyC2lJ4?t=2832
Sortowanie właśnie bardzo przyda nam się w zadaniu Deski z Olimpiady Informatycznej Juniorów:
https://sio2.mimuw.edu.pl/c/oij14-1/p/
Sortowanie wystąpiło również w omówionym zadaniu Trójkąt:
https://youtu.be/sQ99vyC2lJ4?t=6223
–
Wytłumaczyliśmy sobie ile operacji potrzebuje sortowanie i co to jest logarytm:
https://youtu.be/sQ99vyC2lJ4?t=1810
ℹo tym że w lutym jest obóz Stowarzyszenia Talent, który warto rozważyć:
https://youtu.be/sQ99vyC2lJ4?t=4790
———–
Rozwiązaliśmy 2 zadania z Pracy Domowej PD9 (https://oki.org.pl/praca-domowa/)
Zadanie Eliksir które jest problemem wydawania reszty:
https://youtu.be/sQ99vyC2lJ4?t=4947
Omówienie zadania Trójkąt (sortowanie, zadanie analogiczne do zadania Deski z OIJ):
https://youtu.be/sQ99vyC2lJ4?t=5646
———-
Na naszych zajęciach gościliśmy Jaśka Strzeszyńskiego – zwycięzcę Olimpiady Informatycznej Juniorów i złotego medalistę EJOI (Europejskiej Olimpiady Informatycznej Juniorów)
https://youtu.be/sQ99vyC2lJ4?t=5073
——–
Podczas quizu zajęliśmy się jednym z ważniejszych problemów algorytmicznych – problemem wydawania reszty:
https://youtu.be/sQ99vyC2lJ4?t=266
Wydawanie reszty również towarzyszyło nam w czasie zadania Eliksir:
https://youtu.be/sQ99vyC2lJ4?t=5541
I wspominał o tym nasz gość – Jasiek:
https://youtu.be/sQ99vyC2lJ4?t=5513
——–
Po raz kolejny okazało się jak ważny jest ANGIELSKI!
https://youtu.be/sQ99vyC2lJ4?t=4111
———-
Dlaczego warto robić zadania z platformy codeforces:
https://youtu.be/sQ99vyC2lJ4?t=3867
———
Pokazaliśmy jak dodawać zadania do Pracy Domowej:
https://youtu.be/sQ99vyC2lJ4?t=6805
——–
Rozwiązaliśmy zagadkę, która zawierała nieprawidłowe porównanie wartości w C++:
https://youtu.be/sQ99vyC2lJ4?t=7108
Bardzo pouczające ćwiczenie!
———
Pokazaliśmy wszystkie zasoby Olimpijskiego Koła Informatycznego:
https://youtu.be/sQ99vyC2lJ4?t=7422
——–
Na końcu CHAT – sesja pytań i odpowiedzi:
https://youtu.be/sQ99vyC2lJ4?t=7562
——–
A zaczęliśmy od podziękowań:
https://youtu.be/sQ99vyC2lJ4?t=10
Mocy!
Daniel Olkowski
————
————
Link do zadania B. Teams Forming:
https://codeforces.com/problemset/problem/1092/B
Omówienie zadania:
https://youtu.be/sQ99vyC2lJ4?t=960
–
Kod programu który otrzymuje 100%
–
#include <bits/stdc++.h>
using namespace std;
int umiejetnosci_studentow[107];
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int liczba_studentow;
int roznica_poziomow_pary;
int odpowiedz;
int i;
cin >> liczba_studentow;
for (i=0; i<liczba_studentow; ++i)
cin >> umiejetnosci_studentow[i];
sort (umiejetnosci_studentow, umiejetnosci_studentow+liczba_studentow);
odpowiedz = 0;
for (i=0; i<liczba_studentow; i=i+2) {
roznica_poziomow_pary = umiejetnosci_studentow[i+1] – umiejetnosci_studentow[i];
odpowiedz = odpowiedz + roznica_poziomow_pary;
}
cout << odpowiedz << “\n”;
return 0;
}
Link do zadania Eliksir:
https://szkopul.edu.pl/problemset/problem/eliksir/site/
Omówienie zadania:
https://youtu.be/sQ99vyC2lJ4?t=4947
–
Kod programu który otrzymuje 100% napisany przez Jaśka:
–
#include<bits/stdc++.h>
using namespace std;
bool czy_da_sie_usyskac[1110];
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int k,s,p,i,j;
cin>>k>>s;
czy_da_sie_usyskac[0]=true;
for(i=1;i<=k;i++)
{
cin>>p;
for(j=s;j>=p;j–)
czy_da_sie_usyskac[j]=(czy_da_sie_usyskac[j]||czy_da_sie_usyskac[j-p]);
}
if(czy_da_sie_usyskac[s])
cout<<“Abrakadabra”;
else
cout<<“SorryHarry”;
return 0;
}
————
————
Link do zadania Trójkąt:
https://szkopul.edu.pl/problemset/problem/trojkat/site
Omówienie zadania:
https://youtu.be/sQ99vyC2lJ4?t=5646
–
Kod programu który otrzymuje 100%:
–
#include <bits/stdc++.h>
using namespace std;
const int MAX_ODCINKOW = 1e6+7;
long long odcinki[MAX_ODCINKOW];
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int liczba_odcinkow;
long long obwod;
int i;
cin >> liczba_odcinkow;
for (i=0; i<liczba_odcinkow; ++i)
cin >> odcinki[i];
sort (odcinki, odcinki+liczba_odcinkow);
obwod = odcinki[liczba_odcinkow-1] + odcinki[liczba_odcinkow-2] + odcinki[liczba_odcinkow-3];
if ( odcinki[liczba_odcinkow-1] < odcinki[liczba_odcinkow-2] + odcinki[liczba_odcinkow-3] ) {
cout << obwod << “\n”;
return 0;
}
for (i=liczba_odcinkow-4; i>=0; –i) {
obwod = obwod – odcinki[i+3];
obwod = obwod + odcinki[i];
if ( odcinki[i+2] < odcinki[i+1] + odcinki[i] ) {
cout << obwod << “\n”;
return 0;
}
}
cout << -1 << “\n”;
return 0;
}