NeoNox Green Kakadu 2NetFly вообще эта задача для С++ но по понятным причинам я её перевел для перла, конечно на перле такие вещи не делаються... 

ИХМО правильный вариант на perl:
-----------------------------------------------------------------------------------------
#!/usr/bin/perl -w
use strict;
my @arr_m=(1,54,21,30,4,5,6,7,8,99);
my @arr_n;
my $n=2;
map {$arr_n[$_]=$arr_m[$_]} (0..$n);
for (my $i=$n; $i<=$#arr_m; $i++)
{
my $min_pos=0;
map {$min_pos=$_ if ($arr_n[$_]<$arr_n[$min_pos])} (0..$n);
$arr_n[$min_pos] = $arr_m[$i] if ($arr_n[$min_pos] < $arr_m[$i]);
}
------------------------------------------------------------------------
идея понятна?
а вот реализация этого на С++:
------------------------------------------------------------------------
#include 
#define C_BIG_SIZE 15
#define C_SMALL_SIZE 5
int main(void)
{   //                  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15
   int aSource[C_BIG_SIZE] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 64, 33, 45, 21 };
   int aResult[5];
   // Заполняем результат маленького массива первыми C_SMALL_SIZE значениями
   for (int j = 0; j < C_SMALL_SIZE; j++) { aResult[j] = aSource[j]; }
   // Проходим по всем элементам большого массива
   for(int i = C_SMALL_SIZE; i < C_BIG_SIZE; i++)
   {
      // Ищем минимальный элемент в маленьком массиве
      int iMinPos = 0;
      for (int j = 0; j < C_SMALL_SIZE; j++)
      {
         if (aResult[j] < aResult[iMinPos]) { iMinPos = j; }
      }
      // Если найденны минимальный элемент меньше чем текущий элемент в большом массиве
      // заменяем этот минимальный элемент на элемент из большого массива
      if (aResult[iMinPos] < aSource) { aResult[iMinPos] = aSource; }
   }
   cout << "Result: ";
   for (int j = 0; j < 5; j++) { cout << " " << aResult[j]; }
   cout << endl;
}
--------------------------------------------------------------------------
P.S. задача мне очень понравилась...
кстати подобные задачи используються для тестирования программистов при приёме на работу в крупные компании... аля rambler... в частности задача была взята у них... 