Это тот же SPOJ Question http://www.spoj.pl/problems/SBANK/
Вы можете решить эту проблему с Radix sort
или просто по Binary Search Tree
(я сделал это так).
Вот как вы будете делать в C++ (реализовать свой собственный std::map
/std::set
/binary search tree
в C)
map<string,int> tab;
map<string,int>::iterator it;
char acc[40];
int n;
scanf("%d\n",&n);
for(int i=0;i<n;i++)
{
gets(acc);
tab[acc]++;
}
for(it=tab.begin();it!=tab.end();it++)
{
printf("%s %d\n",it->first.c_str(),it->second);
}
printf("\n");
Моя Вышеупомянутая программа также выводит количество равных чисел, которые я не думаю, что указано в вашем вопросе. Таким образом, в этом случае также будет работать простой std :: set или прямое двоичное дерево поиска. Хотя в вышеупомянутом вопросе я мог бы легко решить с std :: set вместо std :: map.
Не могли бы вы подробнее рассказать о вопросе? С чем вы столкнулись? Что вы хотите, чтобы выход был? – matzahboy
Как вы храните цифры? Или ты еще не справился? –
Я просто хочу, чтобы все шесть строк были в порядке возрастания (т. Е.) Сортировать шесть строк. – yuvanesh