本文へスキップ

FUNDAMENTAL INFORMATION TECHNOLOGY ENGINEER

基本情報技術者の問題解説

データ構造及びアルゴリズム 難しい fe_b_v89_alg_sortsearch_003

問題

配列 a={3,1,4,1,5,9} に対して、次の手続 prefixQuery(a) を実行したときの戻り値はどれか。

○整数型: prefixQuery(整数型の配列: a)
  整数型の配列: p[0..aの要素数]
  整数型: i, s ← 0, x
  p[0] ← 0
  for (i を 1 から aの要素数 まで 1ずつ増やす)
    p[i] ← p[i - 1] + a[i]
  endfor
  区間 (2,5), (1,3), (4,6) をこの順に処理する
  各区間 (l,r) について
    x ← p[r] - p[l - 1]
    if (x mod 2 = 0)
      s ← s + x ÷ 2 の商
    else
      s ← s + x
    endif
  endfor
  return s
  1. 26
  2. 29
  3. 30
  4. 34
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目B範囲

正解と解説

正解:30

正解:30

累積和は p={0,3,4,8,9,14,23}。区間(2,5)の和は11で奇数なので+11。区間(1,3)の和は8で偶数なので+4。区間(4,6)の和は15で奇数なので+15。合計は30。

29は偶数区間8をそのまま8ではなく半分にする処理の前後を混同した場合に出やすい。34はすべての区間和をそのまま足した値、26は最後の区間の始点を誤った値に近い。

累積和は p[r]-p[l-1] で区間和を取る。求めた区間和をそのまま使うとは限らず、その後の偶奇分岐まで追う。

この問題について

出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目B範囲

公開問題・サンプル問題の形式、擬似言語記法、アルゴリズム読解・トレース・空欄補充・セキュリティ事例判断の傾向を参考にした独自問題です。本文・数値・選択肢は新規作成しています。

公式試験問題、公開問題、市販教材、外部問題サイトの問題文を転載・改題したものではありません。

参考範囲: 2026年度現行科目B・シラバスVer.9.x参考

RELATED

関連問題