Puoi fare due cose
a)Una matrice interamente di puntatori (Capocolonna doppio puntatore)
b) uno stack di puntatori che contengono un array di stringhe
Nel primo caso devi fare un bobblesort su puntatori.
mentre nel secondo devi prima fare un merge in un array unico, poi un sort su questo array unico, e poi suddividere le squadre negli array dei ragazzi.
Beh di certo non ti scrivo il codice.
Perchè non è costruttivo per te avere già il codice fatto ma solo avere un indirizzo su come affrontare il problema.
Disegna sempre un flow chart di quello che devi fare, se no scrivi tutti i passaggi come se dovessi spiegarlo ad un profano,