#include <iostream>
#include <string>
#include <vector>
using namespace std;
int ile;
int main()
{
cin >> ile;
/*string zestaw[ile];
int dlugosc[ile];
*/
// Nie możesz tak tego zrobić. Takie zastosowanie to rozszerzenie kompilatora i jest niepszenośne. Lepiej używaj std::vector
// a jeżeli jeszcze się nie zagłębiałeś w te szczegóły, to mogą być takze wskaźniki:
// string * zestaw = new string[ile];
// itd...
vector<string> zestaw(ile); // poprawione
vector<int> dlugosc(ile); // poprawione
for (int i = 0; ile>i; i++) // zamieniłbym warunek na: i < ile
{
cin >> zestaw[i];
dlugosc[i] = zestaw[i].length();
}
for (int i = 0; ile>i; i++) // zmieniłbym na: i < ile
{
string napis = zestaw[i];
int liczba = 1;
//for (int j = 0; dlugosc[ile]>j; j++) // błąd -> wyjście poza zakres. Poprawiłem na dole.
for (int j = 0; j < dlugosc[i]; j++)
{
if (napis[j] == napis[j + 1])
{
liczba++;
}
else
{
if (liczba<2)
{
cout << napis[j];
liczba = 1;
}
else if (liczba == 2)
{
// Nie wyświetli końcowego znaku, bo wychodzisz poza zakres przy ostatnim cyklu pętli -> ...<< napis[j+1]
// Nie wyświelti także znaku w innym miejscu niż na końcu, bo indeks będzie wskazywał na inny już znak
cout << napis[j] << napis[j + 1];
liczba = 1;
/*
Nie lepiej wyświetlić tego znaku dwa razy używając tylko jednego indeksu? Pomyśl nad tym i będzie AC.
*/
}
else
{
cout << napis[j] << liczba;
liczba = 1;
}
}
}
cout << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBpbGU7CgppbnQgbWFpbigpCnsKCWNpbiA+PiBpbGU7CgoJLypzdHJpbmcgemVzdGF3W2lsZV07CglpbnQgZGx1Z29zY1tpbGVdOwoJKi8gCgoJLy8gTmllIG1vxbxlc3ogdGFrIHRlZ28genJvYmnEhy4gVGFraWUgemFzdG9zb3dhbmllIHRvIHJvenN6ZXJ6ZW5pZSBrb21waWxhdG9yYSBpIGplc3QgbmllcHN6ZW5vxZtuZS4gTGVwaWVqIHXFvHl3YWogc3RkOjp2ZWN0b3IKCS8vIGEgamXFvGVsaSBqZXN6Y3plIHNpxJkgbmllIHphZ8WCxJliaWHFgmXFmyB3IHRlIHN6Y3plZ8OzxYJ5LCB0byBtb2fEhSBiecSHIHRha3plIHdza2HFum5pa2k6CgkvLyBzdHJpbmcgKiB6ZXN0YXcgPSBuZXcgc3RyaW5nW2lsZV07CgkvLyBpdGQuLi4KCgoJdmVjdG9yPHN0cmluZz4gemVzdGF3KGlsZSk7IC8vIHBvcHJhd2lvbmUKCXZlY3RvcjxpbnQ+IGRsdWdvc2MoaWxlKTsgLy8gcG9wcmF3aW9uZQoKCWZvciAoaW50IGkgPSAwOyBpbGU+aTsgaSsrKSAvLyB6YW1pZW5pxYJieW0gd2FydW5layBuYTogaSA8IGlsZQoJewoJCWNpbiA+PiB6ZXN0YXdbaV07CgkJZGx1Z29zY1tpXSA9IHplc3Rhd1tpXS5sZW5ndGgoKTsKCX0KCglmb3IgKGludCBpID0gMDsgaWxlPmk7IGkrKykgLy8gem1pZW5pxYJieW0gbmE6IGkgPCBpbGUKCXsKCQlzdHJpbmcgbmFwaXMgPSB6ZXN0YXdbaV07CgkJaW50IGxpY3piYSA9IDE7CgoJCS8vZm9yIChpbnQgaiA9IDA7IGRsdWdvc2NbaWxlXT5qOyBqKyspIC8vIGLFgsSFZCAtPiB3eWrFm2NpZSBwb3phIHpha3Jlcy4gUG9wcmF3acWCZW0gbmEgZG9sZS4KCQlmb3IgKGludCBqID0gMDsgaiA8IGRsdWdvc2NbaV07IGorKykKCQl7CgkJCWlmIChuYXBpc1tqXSA9PSBuYXBpc1tqICsgMV0pCgkJCXsKCQkJCWxpY3piYSsrOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJaWYgKGxpY3piYTwyKQoJCQkJewoJCQkJCWNvdXQgPDwgbmFwaXNbal07CgkJCQkJbGljemJhID0gMTsKCQkJCX0KCQkJCWVsc2UgaWYgKGxpY3piYSA9PSAyKQoJCQkJewoJCQkJCS8vIE5pZSB3ecWbd2lldGxpIGtvxYRjb3dlZ28gem5ha3UsIGJvIHd5Y2hvZHppc3ogcG96YSB6YWtyZXMgcHJ6eSBvc3RhdG5pbSBjeWtsdSBwxJl0bGkgLT4gLi4uPDwgbmFwaXNbaisxXQoJCQkJCS8vIE5pZSB3ecWbd2llbHRpIHRha8W8ZSB6bmFrdSB3IGlubnltIG1pZWpzY3UgbmnFvCBuYSBrb8WEY3UsIGJvIGluZGVrcyBixJlkemllIHdza2F6eXdhxYIgbmEgaW5ueSBqdcW8IHpuYWsKCQkJCQljb3V0IDw8IG5hcGlzW2pdIDw8IG5hcGlzW2ogKyAxXTsKCQkJCQlsaWN6YmEgPSAxOwoKCQkJCQkvKgoJCQkJCQlOaWUgbGVwaWVqIHd5xZt3aWV0bGnEhyB0ZWdvIHpuYWt1IGR3YSByYXp5IHXFvHl3YWrEhWMgdHlsa28gamVkbmVnbyBpbmRla3N1PyBQb215xZtsIG5hZCB0eW0gaSBixJlkemllIEFDLgoJCQkJCSovCgkJCQl9CgkJCQllbHNlCgkJCQl7CgkJCQkJY291dCA8PCBuYXBpc1tqXSA8PCBsaWN6YmE7CgkJCQkJbGljemJhID0gMTsKCQkJCX0KCQkJfQoKCQl9CgkJY291dCA8PCBlbmRsOwoJfQoJcmV0dXJuIDA7Cn0=