情報オリンピック2024一次予選1回目終了につき

デフォルトアイキャッチ

今年も生徒の力試しの一環として参加してみました。一次予選は3回あり、まだ10月と11月の分は残っていますが、当校でも通過者がいました(小学生が小6が2名、中学生が中1が1名、中2が1名でした。追記:2回目の予選でさらに中学1年生が1名)。一方でAIが爆発的に進歩している世の中ですのでプログラミングに限らず自分が興味をもったものに積極的に挑戦してほしいとも感じています。

また今回の参加者はPythonコースの在籍者のみでしたが一次予選までなら日本語プログラミング言語など幅広い言語でも参加できます。みなさんも興味があれば参加してみるのも良いかと思います。ちなみに今回の問題を日本語プログラミング言語「なでしこ」で書くとこのような形になるかと思います。少し冗長に書きましたがプログラム未経験者の方にも「これなら僕にも/私にもできそう」と感じてもらえれば嬉しいです。

#問題A--------------------------------------
A=「」と尋ねて整数変換
表示(整数部分(A/5))

#問題B--------------------------------------
X=「」と尋ねて整数変換
答え=0
番号を1からXまで繰り返す:
  もし(番号%2=0)ならば:
    答え=答え-2
  違えば:
    答え=答え+3
表示(答え)

#問題C--------------------------------------
N=「」と尋ねて整数変換
S=「」と尋ねて文字列変換
答え=「」
Sを反復:
  表示(対象)
  もし(対象=「J」)ならば:
    答え=答え&「O」
  違えばもし(対象=「O」)ならば:
    答え=答え&「I」
  違えばもし(対象=「I」)ならば:
    答え=答え&「J」
表示(答え)

#問題D--------------------------------------
入力リスト=「」と尋ねて「 」で区切って配列数値変換
N=入力リスト[0]
M=入力リスト[1]
A=「」と尋ねて「 」で区切って配列数値変換
B=「」と尋ねて「 」で区切って配列数値変換

答え=0
Aを反復:
  餡=対象
  Bを反復:
    皮=対象
    和=餡+皮
    大きい方=配列最大値([餡、皮])
    美味しさ=和*大きい方
    答え=答え+美味しさ

表示(答え)

※問題や解答例(C++, Python)については情報オリンピック日本委員会のHPで確認できます(https://www2.ioi-jp.org/joi/2024/2025-yo1/