Cześć, proszę o pomoc w znalezieniu błędu w kodzie, który powoduje, że sędzia wyświetla komunikat o błędnej odpowiedzi, pomimo, że jak testuje, to odpowiedzi są prawidłowe. Siedzę tak już kolejną godzinę i nie wiem co naprawić :(
#include <iostream>
#include <string>
using namespace std;
void wypisanie (int *licznik, int litera)
{
if (licznik [litera - 65] > 2)
{
cout << char (litera) << licznik [litera - 65];
}
else
{
for (int j = 0 ; j < licznik [litera - 65]; j++)
{
cout << char (litera);
}
}
}
int main()
{
string slowo;
int litera, *licznik, c;
licznik = new int [26];
cin >> c;
for (int p = 0; p < c; p++)
{
for (int h = 0 ; h < 26; h++) licznik [h] = 0;
cin >> slowo;
for (int i = 0 ; i < slowo.length(); i++)
{
if (slowo [i] == slowo [i - 1] || i == 0)
{
litera = int (slowo [i]);
licznik [litera - 65] = licznik [litera - 65] + 1;
if (i + 1 == slowo.length())
{
wypisanie (licznik, litera);
}
}
else
{
wypisanie (licznik, litera);
licznik [litera - 65] = 0;
litera = int (slowo [i]);
licznik [litera - 65] = 1;
}
}
if (licznik [litera - 65] == 1) cout << (char) litera;
cout << endl;
}
delete [] licznik;
return 0;
}