summaryrefslogtreecommitdiff
path: root/day5/part2.TXT
blob: 790c74a70f81b6fb31feca3474bb29692b92ffdc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
\START92\
\COMMENT=Single file dated Fri Dec 19 22:13:14 20
\NAME=part2
\FILE=day5.part2.92f
(rs)
Func
Local i,j,lowerb,upperb,dimb

mat\to\list(rs[1])\->\lowerb
mat\to\list(rs[2])\->\upperb
dim(lowerb)\->\dimb

For i,dimb,1,\(-)\1
 For j,dimb,i+1,\(-)\1
  If lowerb[i]\>=\lowerb[j] and upperb[i]\<=\upperb[j] Then
   lowerb[dimb]\->\lowerb[i]
   upperb[dimb]\->\upperb[i]
   dimb-1\->\dimb
   Exit
  ElseIf lowerb[j]\>=\lowerb[i] and upperb[j]\<=\upperb[i] Then
   lowerb[dimb]\->\lowerb[j]
   upperb[dimb]\->\upperb[j]
   dimb-1\->\dimb
  EndIf
 EndFor
EndFor
left(lowerb,dimb)\->\lowerb
left(upperb,dimb)\->\upperb

For i,1,dimb
 For j,i+1,dimb
  If upperb[i]\>=\lowerb[j] and upperb[i]\<=\upperb[j] Then
   lowerb[j]-1\->\upperb[i]
  ElseIf lowerb[i]\>=\lowerb[j] and lowerb[i]\<=\upperb[j] Then
   upperb[j]+1\->\lowerb[i]
  EndIf
 EndFor
EndFor

sum(upperb-lowerb+1)

EndFunc

\STOP92\