Szczegółowe omówienie zadania Antykwariat:
Link do powyższego omówienia zadania Antykwariat: https://youtu.be/AMouETtFmhg?t=2215
Link do treści zadania Antykwariat i możliwości umieszczania rozwiązań:
https://szkopul.edu.pl/problemset/problem/ant/site/
Zadanie Antykwariat pokazuje jak sortować według własnych kryteriów w C++: https://youtu.be/AMouETtFmhg?t=3973
–
Jak się uczyć na podstawie tego zadania? https://youtu.be/QgLyXYmFQeU?t=2019
Pamiętaj by zajrzeć max 1 raz – wtedy się rozwijasz: https://youtu.be/pkLXuuOe_qA?t=3625
Lista zadań z rozwiązaniami: https://oki.org.pl/lista-zadan-materialy.php
Samouczek – przygotowanie do Olimpiad: https://oki.org.pl/tutorial/
Zajęcia: https://oki.org.pl/harmonogram-zajec/
Informacje o zajęciach: https://oki.org.pl/newsletter.php
Warto startować w Olimpiadzie Informatycznej!
https://youtu.be/K7fZfJ8nN6A?t=109
–
Kod C++ programu Antykwariat, który jest omówiony w powyższym filmie i który otrzymuje 100%
–
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
struct typ_ksiazka {
string tytul;
int liczba_stron;
int czy_dostepna;
};
bool Czy_t1_ZLewejStrony (const typ_ksiazka &t1, const typ_ksiazka &t2) {
if ( t1.czy_dostepna != t2.czy_dostepna )
return t1.czy_dostepna > t2.czy_dostepna; //z lewej strony 1 (ksiazka dostepna)
//jesli tu jestemy to znaczy ze obydwie ksiazki sa tak samo dostepne
//albo obydwie niedostepne (0) albo obydwie dostepne (1)
if ( t1.liczba_stron != t2.liczba_stron )
return t1.liczba_stron < t2.liczba_stron; //z lewej strony ksiazka z mniejsza liczba stron
//jesli tu jestemy to pozycje w vectorze maja ta samo dostepnosc i ta sama liczbe stron
return t1.tytul < t2.tytul; //z lewej strony ksiazka ktora ma mniejszt tytul
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int liczba_ksiazek, i;
vector<typ_ksiazka> ksiazki;
cin >> liczba_ksiazek;
ksiazki.resize(liczba_ksiazek);
for (i=0; i<liczba_ksiazek; ++i) {
cin >> ws; //pomin przypadkowe biale znaki
getline(cin, ksiazki[i].tytul); //wczytujemy cala linie
cin >> ksiazki[i].liczba_stron;
cin >> ksiazki[i].czy_dostepna;
}
sort (ksiazki.begin(), ksiazki.end(), Czy_t1_ZLewejStrony );
for (i=0; i<(int)ksiazki.size(); ++i) {
cout << ksiazki[i].czy_dostepna << " ";
cout << ksiazki[i].tytul << " ";
cout << ksiazki[i].liczba_stron << "\n";
}
return 0;
}
Kod C++ programu Antykwariat, który jest omówiony w powyższym filmie i który otrzymuje 100%