Szczegółowe omówienie zadania Salon Telefanatic:
Link do powyższego omówienia zadania Salon Telefanatic:
https://youtu.be/XL9omTHi7cE?t=1939
Link do treści zadania Salon Telefanatic:
https://szkopul.edu.pl/problemset/problem/tel/site
–
Zadanie Salon Telefanatic jest typowym zadaniem programistycznym.
Pokazuje:
1.
Tworzenie własnych typów danych – struct:
https://youtu.be/XL9omTHi7cE?t=2225
Na czym polega własny typ:
https://youtu.be/XL9omTHi7cE?t=2358
Tworzymy nowy typ danych w C++
https://youtu.be/XL9omTHi7cE?t=2455
2.
Własna funkcje sortującą:
https://youtu.be/XL9omTHi7cE?t=3740
–
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
====
Kod C++ programu Salon Telefanatic, który jest omówiony w powyższym filmie i który otrzymuje 100%
–
#include <bits/stdc++.h>
using namespace std;
struct typ_telefon {
string producent;
string model;
int piksle_x;
int piksle_y;
int moment_wprowadzenia;
};
bool CzyLewyMniejszy (const typ_telefon &t1, const typ_telefon &t2);
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
vector <typ_telefon> telefony;
typ_telefon act_telefon;
int liczba_telefonow;
int i;
cin >> liczba_telefonow;
for (i=0; i<liczba_telefonow; ++i) {
cin >> act_telefon.producent >> act_telefon.model >> act_telefon.piksle_x >> act_telefon.piksle_y;
act_telefon.moment_wprowadzenia = i;
telefony.push_back (act_telefon);
}
sort (telefony.begin(), telefony.end(), CzyLewyMniejszy);
for (i=0; i<liczba_telefonow; ++i) {
cout << telefony[i].producent << " " << telefony[i].model << " " << telefony[i].piksle_x << " " << telefony[i].piksle_y << "\n";
}
return 0;
}
bool CzyLewyMniejszy (const typ_telefon &t1, const typ_telefon &t2) {
int t1_dlugosc, t2_dlugosc;
long long licznik_mianownik_1, licznik_mianownik_2;
t1_dlugosc = t1.producent.size() + t1.model.size();
t2_dlugosc = t2.producent.size() + t2.model.size();
if ( t1_dlugosc != t2_dlugosc )
return t1_dlugosc < t2_dlugosc ;
licznik_mianownik_1 = (long long) t1.piksle_y * (long long) t2.piksle_x;
licznik_mianownik_2 = (long long) t2.piksle_y * (long long) t1.piksle_x;
if ( licznik_mianownik_1 != licznik_mianownik_2 )
return licznik_mianownik_1 < licznik_mianownik_2;
return t1.moment_wprowadzenia < t2.moment_wprowadzenia;
}
/*
bool CzyLewyMniejszy (const typ_telefon &t1, const typ_telefon &t2) {
int t1_dlugosc, t2_dlugosc;
long long licznik_mianownik_1, licznik_mianownik_2;
t1_dlugosc = t1.producent.size() + t1.model.size();
t2_dlugosc = t2.producent.size() + t2.model.size();
if ( t1_dlugosc < t2_dlugosc )
return true;
if ( t1_dlugosc > t2_dlugosc )
return false;
licznik_mianownik_1 = (long long) t1.piksle_y * (long long) t2.piksle_x;
licznik_mianownik_2 = (long long) t2.piksle_y * (long long) t1.piksle_x;
if ( licznik_mianownik_1 < licznik_mianownik_2 )
return true;
if ( licznik_mianownik_1 > licznik_mianownik_2 )
return false;
if ( t1.moment_wprowadzenia < t2.moment_wprowadzenia )
return true;
return false;
}
*/
Kod C++ programu Salon Telefanatic, który jest omówiony w powyższym filmie i który otrzymuje 100%