Sveiki, reikia pagalbos sprendžiant uždavinį: http://prntscr.com/acmx5m Rezultatų nuotrauka: http://prntscr.com/acmxml Mano kodas: http://hastebin.com/owotubapax.vala
Galbūt kas nors pagelbėtų ką blogai darau.
Bebras prieš 9 metus
Užtrukau ilgiau nei planavau bet atsakymą turiu!
Kadangi radus elementą visi kiti pasislinks, teks vėl peržiūrėti tą patį indeksą, taigi po salinti reikėtų pridėti i--;, tuo pačiu ir break;
Jeigu randama pora if(A[i] == A[j] && B[i] != B[j] && C[i] == C[j]), tu pašalini elementus indeksuose i ir j, salinti(A, B, C, n, i, j);. Šalinimas elementarus, pradedant duotu indeksu viską pastumti į "priekį". Bet! Pašalinus pirmąjį elementą, antrojo(to kito kurį reikia pašalint) indeksas jau pasikeitęs! Vienas iš galimų sprendimų, būtų antro elementą šalinant sumažinti indeksą: salinti(A, B, C, n, i, j-1);
Aiškesnis pavyzdys:
// Tarkime turim tokį masyvą(dydis 10)
A
B
C
D
E
F
G
H
I
J
Pašalinkime B(indeksas 1) ir F(indeksas 5) naudodami tavo funkciją. Pirmiausia bus pašalinta raidė su indeksu 1, po šio pašalinimo masyvas atrodys taip:
// Dydis 9
A
C
D
E
F
G
H
I
J
Toliau tavo funkcija šalintų simbolį esantį esantį indekse 5 Bet pala pala, kas ten gyvena? Nebe F! Tai atspindi tavo problemą.
P.S. Sužinoti kaip tinkamai įkelti nuorodas ir nuotraukas, gali sužinoti čia.