void ile_bankow_w_regionie(int *i_wsk, int *j_wsk, int &ilosc_reg1, int &ilosc_reg2, int &ilosc_reg3,
int ilosc_bankow) {
ilosc_reg1 = *i_wsk + 1;
ilosc_reg2 = *j_wsk - *i_wsk - 1;
ilosc_reg3 = ilosc_bankow - *j_wsk;
}
void flaga_fransuska(bank *tab, int *®1_koniec, int *®2_koniec, int ilosc_bankow) {
int i = -1, j = 0, k = ilosc_bankow;
while (j < k) {
if (tab[j].lokalizacja_id % 3 == 1) {
i += 1;
swap(tab[i], tab[j]);
j += 1;
} else if (tab[j].lokalizacja_id % 3 == 2) {
j += 1;
} else {
k -= 1;
swap(tab[k], tab[j]);
}
}
reg1_koniec = &i;
reg2_koniec = &j;
}
void zadanie1(bank *tab, int ilosc_bankow) {
int *i_wsk, *j_wsk;
int ilosc_reg1, ilosc_reg2, ilosc_reg3;
flaga_fransuska(tab, i_wsk, j_wsk, ilosc_bankow);
ile_bankow_w_regionie(i_wsk, j_wsk, ilosc_reg1, ilosc_reg2, ilosc_reg3, ilosc_bankow);
int wsk1 = *i_wsk + 1;
int wsk2 = *j_wsk;
int tab_ilosci_bankow[] = {ilosc_reg1, ilosc_reg2, ilosc_reg3};
int max_region = 0;
int ilosc_bankow_w_max_reg = 0;
for (int i = 0; i < 3; i++) {
if (tab_ilosci_bankow[i] > ilosc_bankow_w_max_reg) {
max_region = i + 1;
ilosc_bankow_w_max_reg = tab_ilosci_bankow[i];
}
}
cout << "Region z najwieksza iloscia bankomatow: " << max_region << "\tLiczba bankomatow: "
<< ilosc_bankow_w_max_reg << endl;
cout << "Polnoc:" << endl;
for (int i = 0; i < wsk1; i++) {
cout << tab[i].id << "\t" << tab[i].miasto << " " << tab[i].lokalizacja_id << endl;
}
cout << "Centrum i zachod" << endl;
for (int i = wsk1; i < wsk2; i++) {
cout << tab[i].id << "\t" << tab[i].miasto << " " << tab[i].lokalizacja_id << endl;
}
cout << "Wschod i poludnie" << endl;
for (int i = wsk2; i < ilosc_bankow; i++) {
cout << tab[i].id << "\t" << tab[i].miasto << " " << tab[i].lokalizacja_id << endl;
}
}