Salon Telefanatic – Omówienie zadania

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%

Nie dodano jeszcze komentarza, rozpocznij dyskusję pierwszy.

Dodaj komentarz