-
Notifications
You must be signed in to change notification settings - Fork 0
/
advent2.go
61 lines (51 loc) · 1.82 KB
/
advent2.go
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package main
import("fmt";"bufio";"os";"strings";"strconv")
func main(){
fmt.Println("Input games:")
reader:= bufio.NewReader(os.Stdin)
summer1:=0
summer2:=0
for{
s,_ := reader.ReadString('\n')
s=strings.TrimSpace(s)
s=strings.Replace(s," ","",-1)
if(s=="end"){break}
s=strings.Replace(s,"ed","",-1)
s=strings.Replace(s,"reen","",-1)
s=strings.Replace(s,"lue","",-1)
ss:=strings.Split(s,":")
s=ss[1]
games:=strings.Split(s,";")
index,_:=strconv.Atoi((strings.Replace(ss[0],"Game","",-1)))
//fmt.Println("index:",index)
good:=1
high := [3]int{0,0,0} //rgb
for _,c := range games{
num := [3]int{0,0,0} // rgb
rolls := strings.Split(c,",")
for _,d := range rolls{
if(string(d[len(d)-1])=="r"){
num[0],_ = strconv.Atoi(strings.TrimSuffix(d,"r"))
if(num[0]>high[0]){high[0]=num[0]}
}else if(string(d[len(d)-1])=="g"){
num[1],_ = strconv.Atoi(strings.TrimSuffix(d,"g"))
if(num[1]>high[1]){high[1]=num[1]}
}else if(string(d[len(d)-1])=="b"){
num[2],_ = strconv.Atoi(strings.TrimSuffix(d,"b"))
if(num[2]>high[2]){high[2]=num[2]}
}
}
if(num[0]>12||num[1]>13||num[2]>14){
good=0
}
}
power:=high[0]*high[1]*high[2]
if(good==1){
summer1 = summer1+index
}
summer2 = summer2+power
//fmt.Println(index,":",high,power)
}
fmt.Println("Compatible index sum [12,13,14]:",summer1)
fmt.Println("High Power sum:",summer2)
}