|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
student "student"
|
|
|
|
|
|
|
|
"lib"
|
|
|
|
)
|
|
|
|
|
|
|
|
func min3(a, b, c int) int {
|
|
|
|
if a <= b && a <= c {
|
|
|
|
return a
|
|
|
|
}
|
|
|
|
if b <= a && b <= c {
|
|
|
|
return b
|
|
|
|
}
|
|
|
|
return c
|
|
|
|
}
|
|
|
|
|
|
|
|
func max3(a, b, c int) int {
|
|
|
|
if a >= b && a >= c {
|
|
|
|
return a
|
|
|
|
}
|
|
|
|
if b >= a && b >= c {
|
|
|
|
return b
|
|
|
|
}
|
|
|
|
return c
|
|
|
|
}
|
|
|
|
|
|
|
|
func min2(a, b int) int {
|
|
|
|
if a <= b {
|
|
|
|
return a
|
|
|
|
}
|
|
|
|
return b
|
|
|
|
}
|
|
|
|
|
|
|
|
func sweetproblem(a, b, c int) int {
|
|
|
|
if a > b {
|
|
|
|
f := a
|
|
|
|
a = b
|
|
|
|
b = f
|
|
|
|
}
|
|
|
|
if a > c {
|
|
|
|
f := a
|
|
|
|
a = c
|
|
|
|
c = f
|
|
|
|
}
|
|
|
|
if b > c {
|
|
|
|
f := b
|
|
|
|
b = c
|
|
|
|
c = f
|
|
|
|
}
|
|
|
|
ans := a
|
|
|
|
if c-b >= a {
|
|
|
|
c -= a
|
|
|
|
} else {
|
|
|
|
a -= c - b
|
|
|
|
half := a / 2
|
|
|
|
c -= half
|
|
|
|
b -= a - half
|
|
|
|
}
|
|
|
|
ans += min2(b, c)
|
|
|
|
return ans
|
|
|
|
}
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
type node struct {
|
|
|
|
red int
|
|
|
|
green int
|
|
|
|
blue int
|
|
|
|
}
|
|
|
|
|
|
|
|
table := []node{
|
|
|
|
{50, 43, 20},
|
|
|
|
{10, 0, 0},
|
|
|
|
{0, 10, 0},
|
|
|
|
{0, 0, 10},
|
|
|
|
{10, 1, 0},
|
|
|
|
{0, 10, 1},
|
|
|
|
{1, 0, 10},
|
|
|
|
{10, 2, 0},
|
|
|
|
{2, 10, 0},
|
|
|
|
{0, 2, 10},
|
|
|
|
{13, 13, 0},
|
|
|
|
{10, 9, 0},
|
|
|
|
{5, 9, 2},
|
|
|
|
}
|
|
|
|
|
|
|
|
for i := 0; i < 15; i++ {
|
|
|
|
table = append(table, node{
|
|
|
|
red: lib.RandIntBetween(0, 30),
|
|
|
|
green: lib.RandIntBetween(0, 30),
|
|
|
|
blue: lib.RandIntBetween(0, 30),
|
|
|
|
})
|
|
|
|
}
|
|
|
|
for _, arg := range table {
|
|
|
|
lib.Challenge("SweetProblem", student.Sweetproblem, sweetproblem, arg.red, arg.green, arg.blue)
|
|
|
|
}
|
|
|
|
}
|