dim yabasic 2.90.2, built on x86_64-unknown-linux-gnu sub getPriority(ch$) local a a = asc(ch$) if and(a>=asc("a"), a<=asc("z")) return a-asc("a")+1 if and(a >= asc("A"), a<=asc("Z")) return a-asc("A")+27 end sub open "03.txt" for reading as #1 sum = 0 while not eof(1) line input #1 line$ lineLen = len(line$) halfLen = lineLen/2 firstHalf$ = mid$(line$, 1, halfLen) secondHalf$ = mid$(line$, halfLen + 1) for i=1 to halfLen for j=1 to halfLen if mid$(firstHalf$, i, 1) == mid$(secondHalf$, j, 1) then dup$ = mid$(firstHalf$, i, 1) break 2 endif next j next i sum = sum + getPriority(dup$) wend close #1 print sum open "03.txt" for reading as #1 sum = 0 while not eof(1) line input #1 line1$ line input #1 line2$ line input #1 line3$ for i=1 to len(line1$) c1$ = mid$(line1$, i, 1) for j=1 to len(line2$) c2$ = mid$(line2$, j, 1) if c1$ != c2$ continue for k=1 to len(line3$) c3$ = mid$(line3$, k, 1) if c2$ != c3$ continue badge$ = c3$ next k next j next i sum = sum + getPriority(badge$) wend close #1 print sum