Другие языки программирования и технологии

Помогите! Напишите задачу по информатике

Даны N натуральных чисел. Требуется выбрать из них некоторое подмножество чисел так, чтобы сумма всех выбранных делилась на N. Если это сделать невозможно - вывести слово "NONE".
Программа ищет первую комбинацию значений:
const
N = 10;
type
mType = array [1..N] of Integer;
var
Mas, Ind : mType;
Nom : Integer;
Yes : Boolean;

procedure OutMas(Mas : mType; Sum, Kol : Integer);
var
Nom : Integer;
begin
Write(Sum, ' : ');
for Nom := 1 to Kol do Write(Mas[Nom], ' ');
WriteLn;
end;

procedure FindSum(Sum, Kol, Index : Integer);
{ Sum - сумма чисел Kol - кол-во в массиве Ind Index - последний номер из Mas }
var
Nom : Integer;
begin
if (Kol > 0) and (Sum > 0) then if Sum mod N = 0 then begin OutMas(Ind, Sum, Kol); Yes := True; Exit; end;
if Index < N then { не достигли предела }
begin
for Nom := Index + 1 to N do
begin
Ind[Kol + 1] := Mas[Nom];
FindSum(Sum + Mas[Nom], Kol + 1, Nom);
if Yes then Exit;
end;
end;
end;

begin
Randomize;
for Nom := 1 to N do
Mas[Nom] := Random(99) + 1;
WriteLn('Исходные данные: ');
OutMas(Mas, N, N);

Yes := False;
FindSum(0, 0, 0);

if Not Yes then WriteLn('NONE');
end.
Результат работы:
Исходные данные:
10 : 31 37 5 86 13 22 85 56 77 86
250 : 31 37 5 86 13 22 56
VV
Vladimir V
66 047
Лучший ответ
Язык хоть какой?
Дмитрий Приз
Дмитрий Приз
1 221