Prosiłabym używac prostych algorytmow na poziomie liceum typu: for,while, if:)
Mamy do dyspozycji n ciężarówek. Każda ciężarówka jest opisana za pomocą napisu złożonego z co najmniej 1 i co najwyżej 250 małych liter alfabetu angielskiego (od a do z). Masa ciężarówki jest podana jako długość napisu. Wszystkie ciężarówki różnią się masami.
Opracuj program, który wczytuje ze standardowego wejscia liczbę ciężarówek oraz ich opis każdy w oddzielnym wierszu i zapisuje ten opis do standardowego wyjścia w kolejności rosnącej.
Przykład - Dla danych: 4 aabbcc klm z ns poprawną odpowiedzią jest: z ns klm aabbcc
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
//pobranie liczby napisow
int size;
cin>>size;
//utworzenie tablicy
string* tab = new string[size];
//wprowadzanie elementow tablicy
for(int i=0; i<size; i++)
cin>>tab[i];
//algorytm sortowania
bool zamiana = true;
for(int i=0; i<size && zamiana == true; i++)
{
zamiana = false;
for(int j=0; j<size-1; j++)
//sortowanie napisow rosnaco pod wzgledem dlugosci
if(tab[j].length() > tab[j+1].length())
{
string buff = tab[j];
tab[j] = tab[j+1];
tab[j+1] = buff;
zamiana = true;
}
}
//wyswietlenie posortowanej tablicy
for(int i=0; i<size; i++)
cout<<tab[i]<<endl;
//usuwanie tablicy
delete []tab;
system("PAUSE");
return 0;
}