Co zrobiliśmy podczas zajęć OKI10

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;
}

Nie dodano jeszcze komentarza, rozpocznij dyskusję pierwszy.

Dodaj komentarz