54 lines
752 B
Go
54 lines
752 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"strconv"
|
|
)
|
|
|
|
func main() {
|
|
if len(os.Args) < 3 {
|
|
log.Fatal("Usage: p1.2 length list...")
|
|
}
|
|
length := atoi(os.Args[1])
|
|
var list []int
|
|
var top, topIdx, numTop int
|
|
for idx, v := range os.Args[2:] {
|
|
wrk := atoi(v)
|
|
list = append(list, wrk)
|
|
if wrk == top {
|
|
numTop++
|
|
if numTop <= 3 {
|
|
topIdx = idx
|
|
}
|
|
} else if wrk > top {
|
|
top = wrk
|
|
numTop = 1
|
|
topIdx = idx
|
|
}
|
|
if len(list) == length {
|
|
break
|
|
}
|
|
}
|
|
for idx, v := range list {
|
|
if idx != topIdx {
|
|
fmt.Print(v, " ")
|
|
}
|
|
}
|
|
fmt.Print("\n")
|
|
}
|
|
|
|
func done(v int) {
|
|
fmt.Println(v)
|
|
os.Exit(0)
|
|
}
|
|
|
|
func atoi(v string) int {
|
|
i, err := strconv.Atoi(v)
|
|
if err != nil {
|
|
log.Fatal("Invalid integer given: " + v)
|
|
}
|
|
return i
|
|
}
|