Cześć, mam takie oto zadanie:
Do sklepu RTV przyszła grupa klientów. Każdy z nich ma pewne wymagania co do telewizora LCD, który zamierza kupić. Jednocześnie, każdy z nich ma ograniczoną sumę, przeznaczoną na ten zakup. Zazwyczaj z wyższą jakością sprzętu wiąże się jego wyższa cena, wobec czego możemy założyć, że wymagana jakość wyznacza cenę minimalną telewizora. Ceny telewizorów w sklepie rozpoczynają się od 1000 zł i rosną po 100 zł przy każdym lepszym modelu. Rozstrzygnij, jaką maksymalną liczbę telewizorów można sprzedać w takich warunkach.
Wejście:
W pierwszym wierszu znajdują się dwie liczby naturalne N i K, żadna z tych liczb nie przekracza 100. Pierwsza z nich oznacza liczbę klientów, zaś druga – liczbę telewizorów w sklepie. W kolejnych N wierszach znajdują się pary liczb naturalnych podzielnych przez 100, określające preferencje kolejnych klientów (zawsze pierwsza z nich jest niewiększa od drugiej). Liczby znajdujące się w jednym wierszu rozdzielone są pojedynczą spacją.
Wyjście:
Wypisz na ekranie jedną liczbę naturalną, określającą maksymalną liczbę telewizorów, które można sprzedać.
Przykład
Dane:
6 6
1000 1200
1100 1300
1100 1100
1200 1300
1000 1300
1500 2100
Wynik:
5
Zasadniczo je rozwiązałem, ale nie wiem czy poprawnie. Czy może ktoś rzucić okiem na mój kod? Testowałem na tych przykładowych danych, ale mimo to dostaję tylko 3 punkty na 6. Zastanawiam się jak zrobić też to zadanie bez użycia instrukcji break.
include <iostream>
using namespace std;
void sortowanie_babelkowe(int* gd, int* gg, int n){
for (int i=1; i<n; i++) {
for (int j=0; j<n-i; j++) {
if (gg[j]>gg[j+1]) {
swap(gg[j], gg[j+1]);
swap(gd[j], gd[j+1]);
}
}
}
}
int main () {
int klienci, telewizory;
// cout << "Podaj liczbę klientów w sklepie: ";
cin >> klienci;
// cout << "Podaj liczbę telewizorów do sprzedania: ";
cin >> telewizory;
int gd[klienci], gg[klienci];
// cout << "Podaj dolną i górną granice kwotową poszczególnych klientów: \n";
//podaję przedziały kwotowe
for (int i=0; i<klienci; i++) {
cin >> gd[i] >> gg[i];
}
sortowanie_babelkowe(gd, gg, klienci);
// for (int i=0; i<klienci; i++) {
// cout << gd[i] << " " << gg[i] << endl;
// }
int cena_telewizora=1000, liczba_sprzedanych=0;
int i=0;
for (; i<klienci; ) {
if (gd[i]<=cena_telewizora && cena_telewizora<=gg[i]) {
// cout << gd[i] << " " << gg[i] << " " << cena_telewizora << endl;
liczba_sprzedanych++;
cena_telewizora = cena_telewizora+100;
telewizory--;
gd[i]=0;
gg[i]=0;
if (telewizory==0) {
cout << liczba_sprzedanych;
break;
}
else i=0;
}
else if (i==klienci-1){
cena_telewizora = cena_telewizora+100;
telewizory--;
if (telewizory==0) {
cout << liczba_sprzedanych;
break;
}
}
else i++;
}
return 0;
}