Szczegółowe omówienie zadania Bierki:
Link do powyższego omówienia zadania Bierki:
https://youtu.be/MJCkuBDezSE?t=895
https://youtu.be/MJCkuBDezSE?t=895
Link do treści zadania Bierki:
https://szkopul.edu.pl/problemset/problem/KiEvCpZBaUNRCp6oTZx2oAQ4/site/
Zadanie Bierki, pochodzi II etapu OIG, poprzednika Olimpiady Informatycznej Juniorów.
Link do wszystkich zadań I edycji Olimpiady Informatycznej Juniorów:
https://szkopul.edu.pl/portal/problemset/oig/1
https://szkopul.edu.pl/problemset/problem/KiEvCpZBaUNRCp6oTZx2oAQ4/site/
Zadanie Bierki, pochodzi II etapu OIG, poprzednika Olimpiady Informatycznej Juniorów.
Link do wszystkich zadań I edycji Olimpiady Informatycznej Juniorów:
https://szkopul.edu.pl/portal/problemset/oig/1
Zadanie Bierki jest pięknym zadaniem wymagającym algorytmu gąsienicy.
Jak się uczyć na podstawie tego zadania?
https://youtu.be/QgLyXYmFQeU?t=2019
——-
Kod C++ programu Bierki, który jest omówiony w powyższym filmie i który otrzymuje 100%
–
#include <bits/stdc++.h>
using namespace std;
int dlugosci_bierek[30010];
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int liczba_bierek;
int max_liczba_bierek_dla_ktorych_trojkat;
int dolna_bierka, gorna_bierka;
int i;
cin >>liczba_bierek;
for (i=0; i<liczba_bierek; ++i)
cin >> dlugosci_bierek[i];
sort (dlugosci_bierek,dlugosci_bierek+liczba_bierek);
max_liczba_bierek_dla_ktorych_trojkat = 0;
dolna_bierka=0, gorna_bierka=2;
while (gorna_bierka<liczba_bierek) {
if ( (dlugosci_bierek[dolna_bierka] + dlugosci_bierek[dolna_bierka+1]) > dlugosci_bierek[gorna_bierka] ) {
max_liczba_bierek_dla_ktorych_trojkat = max (max_liczba_bierek_dla_ktorych_trojkat, gorna_bierka-dolna_bierka+1);
++gorna_bierka;
continue;
}
++dolna_bierka;
}
cout << max_liczba_bierek_dla_ktorych_trojkat;
return 0;
}
Link do pliku ze wzorcowym kodem C++ zadania Bierki