質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Q&A

解決済

1回答

810閲覧

AtCoder RegularContest120のA問題について。

Jonathan_Sf

総合スコア13

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

0グッド

0クリップ

投稿2021/05/26 11:26

編集2021/05/26 11:31

お世話になります。

先日も当該の問題について質問させていただいたAtCoder初心者です。問題はこちらをご覧いただければと思います。

ご回答を元にプログラムを修正し、テストケースについては正しい出力ができるのですが、提出すると3件がAC,18件がREとなってしまいました。AtCoderでは下記のように説明されているのですが、具体的にどの箇所が問題なのか、どのように修正すべきか見当がつきません。ご教示いただけますと幸いです。

RE (Runtime Error) プログラムの実行中にエラーが発生しました。コンパイル時に検知できなかったエラーがあります.スタックオーバーフロー、ゼロ除算などが原因です.

方針としては下記です。

1、標準入力から得た配列numbsに対し繰り返し処理をします。
2、この配列numbsの要素を一部分取り出したスライスaryを作り、問題文で定義された操作を行います。ループのたびにaryの長さは1からNまで1ずつ増やします。
3、操作後の配列要素の総和を出力して次の繰り返し処理を行います。

Go

1package main 2 3import ( 4 "bufio" 5 "fmt" 6 "os" 7 "strconv" 8 "strings" 9) 10 11var sc = bufio.NewScanner(os.Stdin) 12 13func main() { 14 s, t := nextLine(), nextLine() 15 N, _ := strconv.Atoi(s) 16 words := strings.Fields(t) 17 numbs := StrToInt(words) 18 for i := 1; i <= N; i++ { 19 ary := numbs[0:i] 20 x := make([]int, i) 21 copy(x, ary) 22 for k, _ := range x { 23 x[k] += maxInt(x) 24 } 25 fmt.Println(Sum(x)) 26 } 27} 28 29func nextLine() string { 30 sc.Scan() 31 return sc.Text() 32} 33 34// 最大値を求める。 35func maxInt(s []int) int { 36 max := s[0] 37 for i := 1; i < len(s); i++ { 38 if max < s[i] { 39 max = s[i] 40 } 41 } 42 return max 43} 44 45//総和を求める。 46func Sum(arr []int) int { 47 ret := 0 48 for i := 0; i < len(arr); i++ { 49 ret += arr[i] 50 } 51 return ret 52} 53 54//型変換(文字列から整数) 55func StrToInt(str []string) []int { 56 f := make([]int, len(str)) 57 for n := range str { 58 f[n], _ = strconv.Atoi(str[n]) 59 } 60 return f 61} 62

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Goはほかの言語と比べてデフォルトで読み込める一行あたりの文字数が少ないので、その制限を超えてるんだと思います。

投稿2021/05/26 11:52

yudedako67

総合スコア2047

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nobonobo

2021/05/26 23:35 編集

補足するとbufio.Scannerで読める一行に含められる長さは改行コードを含んで「bufio.MaxScanTokenSize=65536」です。
Jonathan_Sf

2021/05/28 16:53

お二方ともありがとうございます。原因も分かりスッキリしました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問