Czy ktoś wie dlaczego dostaje 0 punktów za takie rozwiązanie? Będę wdzięczny za każdą sugestie, porade lub wskazówkę.
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
void sortowanie_przez_wstawianie(int n, string *tab)
{
int j;
string pom;
for (int i = 1; i<n; i++)
{
//wstawienie elementu w odpowiednie miejsce
pom = tab[i]; //ten element będzie wstawiony w odpowiednie miejsce
j = i - 1;
//przesuwanie elementów większych od pom
while (j >= 0 && tab[j]>pom)
{
tab[j + 1] = tab[j]; //przesuwanie elementów
--j;
}
tab[j + 1] = pom; //wstawienie pom w odpowiednie miejsce
}
}
int main()
{
int n, k;
cin >> n >> k;
string* tab = new string[n];
for (int i = 0;i < n;i++)
{
cin >> tab[i];
sortowanie_przez_wstawianie(i + 1, tab);
}
/* wyświetlanie posortowanej tablicy
for (int i = 0;i < n;i++)
cout << tab[i] << endl;
*/
for (int i = 0;i < k;i++)
{
cout << endl;
string liczba;
cin >> liczba;
string ztablicy;
int dlugoscLiczby = liczba.length();
int dol = 0, gora = n - 1, gorap;
bool porownanie;
bool zgodne;
for (int index = 0;index <= dlugoscLiczby - 1;index++)
{
zgodne = false;
porownanie = false;
for (int j = dol;j <= gora;j++)
{
string pom = "";
if (tab[j][index] == 'a' || tab[j][index] == 'b' || tab[j][index] == 'c')
pom += "2";
if (tab[j][index] == 'd' || tab[j][index] == 'e' || tab[j][index] == 'f')
pom += "3";
if (tab[j][index] == 'g' || tab[j][index] == 'h' || tab[j][index] == 'i')
pom += "4";
if (tab[j][index] == 'j' || tab[j][index] == 'k' || tab[j][index] == 'l')
pom += "5";
if (tab[j][index] == 'm' || tab[j][index] == 'n' || tab[j][index] == 'o')
pom += "6";
if (tab[j][index] == 'p' || tab[j][index] == 'q' || tab[j][index] == 'r' || tab[j][index] == 's')
pom += "7";
if (tab[j][index] == 't' || tab[j][index] == 'u' || tab[j][index] == 'v')
pom += "8";
if (tab[j][index] == 'w' || tab[j][index] == 'x' || tab[j][index] == 'y' || tab[j][index] == 'z')
pom += "9";
if (liczba[index] == pom[0])
{
if (porownanie == false)
{
dol = j;
porownanie = true;
}
gorap = j;
zgodne = true;
}
else if (porownanie == true)
break;
}
if (zgodne == false)
break;
else
gora = gorap;
}
if (zgodne == false)
cout << "BRAK" << endl;
else
for (int j = dol;j <= gora;j++)
{
cout << tab[j];
if (gora - j > 0)
cout << " ";
}
}
//system("pause");
return 0;
}