キーエンス プログラミング コンテスト 2021のメモ
前置き
Atcoderをやってみたので、自分用のメモです。
あとから加筆・修正する予定です。
問題
A
Q_A.go
package main
import (
"bufio"
"fmt"
"os"
"strconv"
)
var sc = bufio.NewScanner(os.Stdin)
func nextInt() int64 {
sc.Scan()
i, e := strconv.ParseInt(sc.Text(),10,64)
if e != nil {
panic(e)
}
return i
}
func main() {
sc.Split(bufio.ScanWords)
var N int
fmt.Scanf("%d", &N)
var a int64
var c int64
b := make([]int64, N)
d := make([]int64, N)
a = nextInt()
d[0] = a
for i:=1; i<N; i++ {
a = nextInt()
if d[i-1] > a{
d[i] = d[i-1]
} else {
d[i] = a
}
}
for i:=0; i<N; i++ {
b[i] = nextInt()
}
c = d[0] * b[0]
fmt.Printf("%d\n", c)
for i:=1; i<N; i++{
if d[i] * b[i] > c{
c = d[i] * b[i]
} else {
c = c
}
fmt.Printf("%d\n", c)
}
}
B
Q_B.go
package main
import (
"bufio"
"fmt"
"sort"
"os"
"strconv"
)
var sc = bufio.NewScanner(os.Stdin)
func nextInt() int64 {
sc.Scan()
i, e := strconv.ParseInt(sc.Text(),10,64)
if e != nil {
panic(e)
}
return i
}
func main() {
sc.Split(bufio.ScanWords)
var N, K int
fmt.Scanf("%d %d", &N, &K)
a := make([]int64, N)
box := make([]int64, K)
for i:=0; i<N; i++{
a[i] = nextInt()
}
sort.Slice(a, func(i, j int) bool {
return a[i] < a[j]
})
var j int = 0
var tmp int64 = -1
for i:=0; i<N; i++{
if a[i] == tmp{
if box[j] == a[i]{
box[j] = a[i]+1
}
if j+1 < K{
j = j+1
}
} else {
if box[0] == a[i]{
box[0] = a[i]+1
}
tmp = a[i]
if 1 < K{
j = 1
}
}
}
var sum int64
for i:=0; i<K; i++{
sum += box[i]
}
fmt.Printf("%d\n", sum)
}
C
Q_A.go
package main
import (
"bufio"
"fmt"
"os"
"strconv"
)
var sc = bufio.NewScanner(os.Stdin)
func nextInt() int64 {
sc.Scan()
i, e := strconv.ParseInt(sc.Text(),10,64)
if e != nil {
panic(e)
}
return i
}
func main() {
sc.Split(bufio.ScanWords)
var N int
fmt.Scanf("%d", &N)
var a int64
var c int64
b := make([]int64, N)
d := make([]int64, N)
a = nextInt()
d[0] = a
for i:=1; i<N; i++ {
a = nextInt()
if d[i-1] > a{
d[i] = d[i-1]
} else {
d[i] = a
}
}
for i:=0; i<N; i++ {
b[i] = nextInt()
}
c = d[0] * b[0]
fmt.Printf("%d\n", c)
for i:=1; i<N; i++{
if d[i] * b[i] > c{
c = d[i] * b[i]
} else {
c = c
}
fmt.Printf("%d\n", c)
}
}
Q_B.go
package main
import (
"bufio"
"fmt"
"sort"
"os"
"strconv"
)
var sc = bufio.NewScanner(os.Stdin)
func nextInt() int64 {
sc.Scan()
i, e := strconv.ParseInt(sc.Text(),10,64)
if e != nil {
panic(e)
}
return i
}
func main() {
sc.Split(bufio.ScanWords)
var N, K int
fmt.Scanf("%d %d", &N, &K)
a := make([]int64, N)
box := make([]int64, K)
for i:=0; i<N; i++{
a[i] = nextInt()
}
sort.Slice(a, func(i, j int) bool {
return a[i] < a[j]
})
var j int = 0
var tmp int64 = -1
for i:=0; i<N; i++{
if a[i] == tmp{
if box[j] == a[i]{
box[j] = a[i]+1
}
if j+1 < K{
j = j+1
}
} else {
if box[0] == a[i]{
box[0] = a[i]+1
}
tmp = a[i]
if 1 < K{
j = 1
}
}
}
var sum int64
for i:=0; i<K; i++{
sum += box[i]
}
fmt.Printf("%d\n", sum)
}
C
覚えてたら後で書きます。
D
覚えてたら後で書きます。
E
覚えてたら後で書きます。
F
覚えてたら後で書きます。
Author And Source
この問題について(キーエンス プログラミング コンテスト 2021のメモ), 我々は、より多くの情報をここで見つけました https://qiita.com/nogawanogawa/items/91edef0e01d94b0dd4aa著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .