Discuss Scratch
- Discussion Forums
- » 日本語
- » Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)
- Poteto143
-
1000+ posts
Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)
本トピックを利用する前に、必ずこの投稿を最後まで読んでください!
このトピックは、Scratchで競技プログラミングサイトのような問題に挑戦したり、その問題を出題できるものです。
ただし一般的な競プロと違い、ここでは参加者のランク付けはありません。
あなたもぜひScratchで競プロの世界に飛び込みましょう!
※このトピックの内容はScratchやその他のプログラミングに慣れている人におすすめです。
まだ慣れていないという方は、Scratchスクリプトクイズのほうにも参加してみてください!
問題の解き方
問題は「問題名」「実行時間制限」「問題文」「制約」「結果例」の5つで作られます。
・問題名: 問題の名前です。
・実行時間制限: プログラムの実行にかけることができる時間です。
ターボモードを有効にしたうえで、この時間内にプログラムの実行が終わらない場合は不正解となります。
※この時間内で問題を解かなければいけないというわけではありません。
・問題文: 問題の内容です。変数として、aやnといった文字が登場することもあります。
・制約: 問題文で登場した変数が取ることのできる値の範囲が書かれています。
・結果例: 正解のプログラムを実行すると結果がどうなるかを、例として示しています。
また、問題によっては難易度が分かれていたり、上記の五つ以外の追加情報がある場合があります。
問題の例
問題を解くときのルール
・問題への回答には必ずプロジェクトを作成し、そのURLを投稿するようにしてください。
・どの問題に回答しているかがわかるようにしてください。
・制約で決められたすべての変数の値で正しい結果を出せるプログラムを作る必要があります。
例: 制約が x=2,3 y=1,2 となっている場合、x, y = (2,1),(2,2),(3,1),(3,2) これらすべての場合で正しい答えが出せるようにしてください。
・問題を解くために調べ物をすることができます。
・回答者同士で解き方を相談することはできません!
・回答の直接的なヒントにならない範囲であれば、出題者に質問をすることができます。
・間違えた問題に再度回答する場合は、新しく投稿をしてください。
・変数の入力は、特に問題の指示がなければ「[ ] と聞いて待つ」ブロックを使用してください。
・Turbowarpなど、第三者により制作されたModの使用は禁止します。(詳細はこちら)
・プログラムの実行時間は以下の方法で計測してください。
このトピックでは、すべての方が自由に問題を出題できます!
以下のルールを守って、あなたの作った問題を投稿してみてください。
・問題を投稿する前に、自分でも正解のプログラムを作られるか確認してください。
・想定解でない回答が出たときも、適切に正解不正解が判断できるようにしてください。
・問題には必ず実行時間制限を設定してください。(目安は5〜15秒です)
・自分の問題に誰かが解答がしたら、正解不正解を伝えてください。
・Turbowarpなど、第三者により制作されたModは回答テストに使用しないでください。(詳細はこちら)
・投稿は以下の形でお願いします。
・難易度を分ける場合は二つまで、難易度名はEasy、Hardで統一してください。
・問題の解答と解説については好きなタイミングで投稿してもかまいませんが、ある程度問題投稿が流れてからにしてください。
このトピックは、Scratchで競技プログラミングサイトのような問題に挑戦したり、その問題を出題できるものです。
ただし一般的な競プロと違い、ここでは参加者のランク付けはありません。
あなたもぜひScratchで競プロの世界に飛び込みましょう!
※このトピックの内容はScratchやその他のプログラミングに慣れている人におすすめです。
まだ慣れていないという方は、Scratchスクリプトクイズのほうにも参加してみてください!
問題の解き方
問題は「問題名」「実行時間制限」「問題文」「制約」「結果例」の5つで作られます。
・問題名: 問題の名前です。
・実行時間制限: プログラムの実行にかけることができる時間です。
ターボモードを有効にしたうえで、この時間内にプログラムの実行が終わらない場合は不正解となります。
※この時間内で問題を解かなければいけないというわけではありません。
・問題文: 問題の内容です。変数として、aやnといった文字が登場することもあります。
・制約: 問題文で登場した変数が取ることのできる値の範囲が書かれています。
・結果例: 正解のプログラムを実行すると結果がどうなるかを、例として示しています。
また、問題によっては難易度が分かれていたり、上記の五つ以外の追加情報がある場合があります。
問題の例
りんごの樹 実行時間制限: 5秒正解はこのようになります。
x個のりんごがなっている樹があります。
その樹からy個のりんごが地面に落ちました。
樹に残っているりんごの数を求め、変数「結果」に入れてください。
制約
5 ≦ x ≦ 50
1 ≦ y ≦ x
(x, yはともに自然数)
結果例
x = 50, y = 25のとき、変数「結果」に入る値は「25」となります。
[xの値は?] と聞いて待つ
[x v] を (答え) にする
[yの値は?] と聞いて待つ
[y v] を (答え) にする
[結果 v] を ((x) - (y)) にする
問題を解くときのルール
・問題への回答には必ずプロジェクトを作成し、そのURLを投稿するようにしてください。
・どの問題に回答しているかがわかるようにしてください。
・制約で決められたすべての変数の値で正しい結果を出せるプログラムを作る必要があります。
例: 制約が x=2,3 y=1,2 となっている場合、x, y = (2,1),(2,2),(3,1),(3,2) これらすべての場合で正しい答えが出せるようにしてください。
・問題を解くために調べ物をすることができます。
・回答者同士で解き方を相談することはできません!
・回答の直接的なヒントにならない範囲であれば、出題者に質問をすることができます。
・間違えた問題に再度回答する場合は、新しく投稿をしてください。
・変数の入力は、特に問題の指示がなければ「[ ] と聞いて待つ」ブロックを使用してください。
・Turbowarpなど、第三者により制作されたModの使用は禁止します。(詳細はこちら)
・プログラムの実行時間は以下の方法で計測してください。
緑の旗がクリックされたとき問題投稿のルール
[変数入力] と聞いて待つ
[開始時刻 v] を (2000年からの日数) にする
...//プログラム本体の処理
[実行時間 v] を (((2000年からの日数) - (開始時刻)) * (86400)) にする // 秒単位で実行にかかった時間を計れます
このトピックでは、すべての方が自由に問題を出題できます!
以下のルールを守って、あなたの作った問題を投稿してみてください。
・問題を投稿する前に、自分でも正解のプログラムを作られるか確認してください。
・想定解でない回答が出たときも、適切に正解不正解が判断できるようにしてください。
・問題には必ず実行時間制限を設定してください。(目安は5〜15秒です)
・自分の問題に誰かが解答がしたら、正解不正解を伝えてください。
・Turbowarpなど、第三者により制作されたModは回答テストに使用しないでください。(詳細はこちら)
・投稿は以下の形でお願いします。
[b][big]問題名[/big][/b] 実行時間制限: n秒 問題文 [big]制約[/big] 変数の取る値の範囲など [big]結果例[/big] 結果を例示
・問題の解答と解説については好きなタイミングで投稿してもかまいませんが、ある程度問題投稿が流れてからにしてください。
Last edited by Poteto143 (June 16, 2025 09:33:23)
- Poteto143
-
1000+ posts
Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)
現在投稿されている問題(出題者名、FA者名敬称略) (不定期更新)
※FA(First Accepted): その問題に一番最初に正解した人のこと
※自分の問題でここに載っていない物がある場合は僕のプロフィールまでお願いします!
※FA(First Accepted): その問題に一番最初に正解した人のこと
- #3 スーパーべき乗君 by Poteto143 FA: 00giri
- #14 エンギイイナンバー by NT_ZZzz FA Easy: sousi02 Hard: osarusann-ukiki
- #28 おもり作り by NT_ZZzz FA: 00giri
- #33 Caesar by Yuulis FA: sousi02
- #38 Draw On The List by Yuulis FA: yukku
- #45 1e-17 by itta611 FA: 00giri
- #57 n split by itta611 FA: yukku
- #69 Copy and Paste by itta611 FA: 00giri
- #80 Out or In? by Yuulis FA: 00giri
- #85 robot simulation by watashida FA Easy: 00giri Hard: NT_ZZzz
- #87 ナベアツアツ数 by NT_ZZzz FA Easy: 00giri Hard: watashida
- #110 2乗くん by massa-g FA Easy: 00girl Hard: 00girl
- #115 温度調節の大切さ by yuikunyeah FA Easy: 00girl Hard: 00girl
- #119 Discussion Forum by Yuulis FA: Doctor_Fe
- #132 A!/B! Problem by NT_ZZzz FA: yukku
- #140 追いかけ数 by NT_ZZzz FA: Doctor_Fe
- #171 辞書 by hirayuu1414 FA:00giri
- #175 リスト加算操作 by NT_ZZzz FA: 00giri
- #178 ハブ空港検索 by sakura_neko FA: NT_ZZzz
- #182 びっくりサイン by hirayuu1414 FA: Doctor_Fe
- #190 Coprime to Each Other by Yuulis FA: kumaman123
- #206 第一兆項 by NT_ZZzz FA: watashida
- #213 Egotistical Dictionary? by kakurenbo FA Easy: sakura_neko Hard: sakura_neko
- #217 Complex Anagram by sakura_neko FA: kakurenbo
- #223 百人一首の達人 by hirayuu1414 FA: 00giri
- #227 リンゴの林 by sakura_neko FA: 00giri
- #232 Factorial Sum Remainder by massa-g FA Easy: sakura_neko_sub Hard: sakura_neko_sub
- #238 風変わりな旋律 by sakura_neko FA Easy: NT_ZZzz Hard: NT_ZZzz
- #241 Sum of gcd by massa-g FA Easy: 00giri Hard: 00giri
- #246 Travel Across Desert by sakura_neko FA: N/A
- #247 トーナメントの2位 by hirayuu1414 FA Easy: 00giri Hard: 00giri
- #251 残った自然数 by sakura_neko FA Easy: watashida Hard: watashida
- #258 イコール判定ロボット by Atridott FA: Catapult-
- #264 誕生日パーティー by Sky_Thunder FA Easy: yukku Hard: yukku
- #267 Good Pair by souta_ FA: yukku
- #269 35 or Under by nyankodaisensou-suki FA: sakura_neko
- #278 怪しいカジノ by hirayuu1414 FA: 00giri
- #279 n進循環小数 by akinarin FA: 00giri
- #285 mex sum minmax by Magentor FA: sakura_neko
- #291 (実験的な問題)インタラクティブなゲーム by hirayuu1414 FA: newmomizi_txt
- #294 特異な参加者 by hirayuu1414 FA: sakura_neko
- #297 注文内容の多過ぎる料理店 by nyankodaisensou-suki FA: 9q9q9q
- #300 注文内容の多過ぎる料理店その2 by nyankodaisensou-suki FA: sakura_neko
- #309 なげなわ選択 by sakura_neko FA: N/A
- #315 りんご拾い by sakura_neko FA Easy: Catapult- Hard: Catapult-
※自分の問題でここに載っていない物がある場合は僕のプロフィールまでお願いします!
Last edited by Poteto143 (June 16, 2025 09:18:33)
- Poteto143
-
1000+ posts
Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)
というわけで、さっそく僕から問題です。
スーパーべき乗君 実行時間制限:5秒
ねこくんは、小さなロボットを作りました。
そのロボットは、2^nの計算をして、結果をしゃべる機能を持っています。
ある日、ねこくんはロボットにnの値をセットし、計算を始めさせました。
このとき、ロボットがしゃべると予想される数字の1ケタ目の数字を、変数「結果」に入れてください。
制約
5 ≦ n ≦ 10^15 (nは自然数)
結果例
n=10のとき、2^10は1024のため、変数「結果」に入るべき値は「4」となります。
スーパーべき乗君 実行時間制限:5秒
ねこくんは、小さなロボットを作りました。
そのロボットは、2^nの計算をして、結果をしゃべる機能を持っています。
ある日、ねこくんはロボットにnの値をセットし、計算を始めさせました。
このとき、ロボットがしゃべると予想される数字の1ケタ目の数字を、変数「結果」に入れてください。
制約
5 ≦ n ≦ 10^15 (nは自然数)
結果例
n=10のとき、2^10は1024のため、変数「結果」に入るべき値は「4」となります。
Last edited by Poteto143 (April 12, 2021 09:06:07)
- 00giri
-
1000+ posts
Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)
Last edited by 00giri (July 24, 2022 01:06:35)
- yuikunyeah
-
1000+ posts
Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)
Last edited by yuikunyeah (April 12, 2021 12:54:39)
- Poteto143
-
1000+ posts
Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)
#4
正解です!
#5
不正解です…
ちなみに2^nは、2をn乗するという意味です。
正解です!
#5
不正解です…
ちなみに2^nは、2をn乗するという意味です。
- Poteto143
-
1000+ posts
Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)
#7
まだ不正解です…!
この方法では実行時間制限の壁にぶつかってしまいます。
また、変数の値がScratchでは扱えないほど大きくなってしまいます。
まだ不正解です…!
この方法では実行時間制限の壁にぶつかってしまいます。
また、変数の値がScratchでは扱えないほど大きくなってしまいます。
Last edited by Poteto143 (April 12, 2021 10:14:09)
- yuikunyeah
-
1000+ posts
Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)
なぜ変数が大きくなるんですか? #7
まだ不正解です…!
この方法では実行時間制限の壁にぶつかってしまいます。
また、変数の値がScratchでは扱えないほど大きくなってしまいます。
- daikikato
-
100+ posts
Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)
#3への回答↓
https://scratch.mit.edu/projects/514280008/
大きい数を入力すると5秒以内にプログラムが終了しなかったので削除
https://scratch.mit.edu/projects/514280008/
大きい数を入力すると5秒以内にプログラムが終了しなかったので削除
Last edited by daikikato (April 12, 2021 10:55:13)
- yuikunyeah
-
1000+ posts
Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)
わかりました。
今度こそできたと思います(もっと勉強しよ)
今度こそできたと思います(もっと勉強しよ)
Last edited by yuikunyeah (April 12, 2021 12:24:55)
- NT_ZZzz
-
100+ posts
Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)
出題します
エンギイイナンバー 実行時間制限: 5秒
10進法自然数のうち各桁の数字に'4'と'9'を含まない数を「エンギイイナンバー」とします。
N番目に小さな「エンギイイナンバー」を求めてください
制約
この問題は2つの難易度に分かれています
EASY 1 ≦ N ≦ 1000
HARD 1 ≦ N ≦ 1000000000000000(=10^15)
結果例
N=1 のとき 1
N=5 のとき6
N=10 のとき 12
N=1041 のとき 2021
(エンギイイナンバーは小さい順に 1,2,3,5,6,7,8,10,11,12,13,15…となります)
解説はこちら
https://scratch.mit.edu/projects/517025699
エンギイイナンバー 実行時間制限: 5秒
10進法自然数のうち各桁の数字に'4'と'9'を含まない数を「エンギイイナンバー」とします。
N番目に小さな「エンギイイナンバー」を求めてください
制約
この問題は2つの難易度に分かれています
EASY 1 ≦ N ≦ 1000
HARD 1 ≦ N ≦ 1000000000000000(=10^15)
結果例
N=1 のとき 1
N=5 のとき6
N=10 のとき 12
N=1041 のとき 2021
(エンギイイナンバーは小さい順に 1,2,3,5,6,7,8,10,11,12,13,15…となります)
解説はこちら
https://scratch.mit.edu/projects/517025699
Last edited by NT_ZZzz (April 20, 2021 17:28:18)
- Poteto143
-
1000+ posts
Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)
#13
不正解です・・・。
以下ヒント:
多くの方は変数を2にした後に (変数)*2をn-1回繰り返す方法を考えると思います。
ただ、この方法ではnが1024以上になると変数の値がInfinityに、つまりScratchでは計算できないほど巨大な数になってしまいます。
(2の1024乗を実際にパソコンで計算すれば理由は分かるはず)
さらに、問題の制約ではnのとる値の上限が10^15(1,000,000,000,000,000)となっています。
つまり、最悪の場合999,999,999,999,999回の繰り返しをすることになります。これではいつまでたっても計算が終わりません。
では、この問題はどうやって解けば良いのでしょうか?
その答えは、nが5, 6, 7, 8, 9, 10, 11, 12, 13, 14のときの2^nの値を全て並べてしばらく眺めれば見つかるかもしれません・・・。
不正解です・・・。
以下ヒント:
多くの方は変数を2にした後に (変数)*2をn-1回繰り返す方法を考えると思います。
ただ、この方法ではnが1024以上になると変数の値がInfinityに、つまりScratchでは計算できないほど巨大な数になってしまいます。
(2の1024乗を実際にパソコンで計算すれば理由は分かるはず)
さらに、問題の制約ではnのとる値の上限が10^15(1,000,000,000,000,000)となっています。
つまり、最悪の場合999,999,999,999,999回の繰り返しをすることになります。これではいつまでたっても計算が終わりません。
では、この問題はどうやって解けば良いのでしょうか?
その答えは、nが5, 6, 7, 8, 9, 10, 11, 12, 13, 14のときの2^nの値を全て並べてしばらく眺めれば見つかるかもしれません・・・。
- yuikunyeah
-
1000+ posts
Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)
意味不明な投稿だったため削除
Last edited by yuikunyeah (April 26, 2021 09:18:03)
- Poteto143
-
1000+ posts
Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)
yuikunyeahさん、#3に正解です!
(回答をし直すときは、前の投稿を編集するのではなくそのたびに新しい投稿をしてくれるとありがたいです・・・。)
(回答をし直すときは、前の投稿を編集するのではなくそのたびに新しい投稿をしてくれるとありがたいです・・・。)
- 00giri
-
1000+ posts
Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)
Last edited by 00giri (July 24, 2022 01:08:50)
- yuikunyeah
-
1000+ posts
Scratchで競技プログラミング!(初めての人は最初の投稿をお読みください)
14
Easy
回答しました。
イージーでもエンギヨクナイ
Easy
回答しました。
イージーでもエンギヨクナイ
Last edited by yuikunyeah (April 13, 2021 06:33:51)