63 lines
1.1 KiB
Text
63 lines
1.1 KiB
Text
|
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
|