Untitled
unknown
pascal
4 years ago
1.2 kB
2
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...