Untitled
unknown
pascal
5 years ago
1.2 kB
5
Indexable
Program BAI03;
Const
FILE_NAME = 'SUM';
Var
n: Byte;
s: Word;
sloved: Boolean;
a: array Of Word;
x: array Of Boolean;
Procedure HandleInput;
Var
i: Byte;
Begin
Assign(input, FILE_NAME + '.INP');
Reset(input);
ReadLn(n, s);
SetLength(x, n);
SetLength(a, n);
For i:=0 To n-1 Do
Read(a[i]);
Close(input);
End;
Procedure ProcessSolution;
Var
i: Byte;
_sum: Word = 0;
Begin
For i:=0 To n-1 Do
If x[i] Then
_sum := _sum + a[i];
If _sum = s Then
sloved := true;
End;
Procedure Run(i: Byte);
Var
b: Boolean;
Begin
If sloved Then
Exit;
For b:=false To true Do
Begin
x[i] := b;
If i = n-1 Then
ProcessSolution
Else
Run(i + 1);
If sloved Then
Exit;
End;
End;
Procedure HandleOutput;
Var
i: Byte;
Begin
Assign(output, FILE_NAME + '.OUT');
Rewrite(output);
If Not sloved Then
WriteLn('KHONG TIM DUOC')
Else
For i:=0 To n-1 Do
If x[i] Then
Write(a[i], #32);
Close(output);
End;
Begin
HandleInput;
Run(0);
HandleOutput;
End.
Editor is loading...