Я пытался решить проблему, в которой я должен сортировать все больше массива чисел, чем брать первые k чисел из отсортированного массива и исключать числа, которые повторяются и записывать их на выходе.Задача сортировки вставки
Это мой код:
#include <iostream>
using namespace std;
int main()
{
int n, k;
cin >> n >> k;
int tab[n];
for (int i = 0; i < n; i++) //taking n numbers from input
{
cin >> tab[i];
}
int j, element;
for (int i = 1; i < n; i++) //i am using insertion sort
{
j = 0;
while (tab[j] < tab[i])
j++;
element = tab[i];
for(int k = i - 1; k >= j; k--)
tab[k + 1] = tab[k];
tab[j] = element;
}
for (int i = 0; i < k; i++) //writing k smallest numbers without repetitions
{
if (tab[i] == tab[i + 1])
continue;
cout << tab[i] <<"\n";
}
cin >> n;
return 0;
}
обычно это работает, и это дает ожидаемый выход, однако, когда я отправляю эту проблему, чтобы проверить его правильность (я нашел эту проблему на польском сайте), он говорит, что «неправильно anwser». Я не вижу здесь никаких ошибок, может быть, вы увидите что-то, что я написал плохо.
да, спасибо, это было – essa