Attribute VB_Name = "Sets" Option Explicit Sub Main() Const DataPath As String = "C:\BayanContest\Practice3-Sets\" Const InputFile As String = DataPath & "problem3.in" Const OutputFile As String = DataPath & "problem3.out" ConvertNewLineInFile InputFile Open InputFile For Input As #1 Open OutputFile For Output As #2 Dim ccount As Integer, ttime As Integer Dim n As Integer, num As Variant, sum() As Long, i As Integer, j As Integer, summation As Long Dim col As Collection Input #1, ccount For ttime = 1 To ccount Input #1, n ReDim num(n) For i = 0 To n - 1 Input #1, num(i) Next ReDim sum(n) sum(0) = num(0) For i = 1 To n - 1 sum(i) = sum(i - 1) + num(i) Next Set col = New Collection For i = 0 To n - 1 For j = i To n - 1 summation = 0 If i = 0 Then summation = sum(j) Else summation = sum(j) - sum(i - 1) End If On Error Resume Next col.Add 0, CStr(summation) On Error GoTo 0 Next Next Print #2, CStr(col.Count) Next Close End Sub ' Changes all EOL (end-of-line) to CrLf. for more information visit: http://en.wikipedia.org/wiki/Newline Public Sub ConvertNewLineInFile(ByVal FileName As String) Dim FileNum As Integer FileNum = FreeFile Dim Buffer As String On Error GoTo ConvertNewLineInFile_Error Open FileName For Binary Access Read Write As FileNum Buffer = String(LOF(FileNum), 0) Get FileNum, , Buffer Buffer = Replace(Buffer, vbLf, vbCr) Buffer = Replace(Buffer, vbCr & vbCr, vbCr) Buffer = Replace(Buffer, vbCr & vbCr, vbCr) Buffer = Replace(Buffer, vbCr, vbCrLf) Put FileNum, 1, Buffer ConvertNewLineInFile_Error: Close FileNum End Sub