質問: ~~競技プログラミングで出された問題など、アルゴリズムについての問題がどうしても解けません。~~ * ~~私のプログラムの何が間違っているのでしょうか?~~ * ~~どのように質問すれば良いですか?~~ --- この FAQ 案を破棄します。もともと「 競技プログラミングの文脈で「WAがでます」と言っているだけの質問は意図がはっきりしませんか? 」や「 新行動規範と競技プログラミング 」という投稿の流れでこのメタ投稿をしたのですが、既にヘルプページに載っている「良い質問をするには?」以外の縛りを質問者に課すと、必要以上に質問者を圧迫してしまい、質問者に寛容なコミュニティを作っていくことができないと考えたからです。今のところこの没ガイドラインの代わりとして、回答者がそれぞれの質問にコメントや回答等で対応していく際のガイドラインがあると良いのではないかと考えています。 また、念の為この投稿は削除せず残しておきます。
回答: 質問する前に:あなたの状況を整理しましょう * **他人の助けを借りることが許されていますか?** 場合によっては、競技中に質問することを制限していたり、競技後のネタバレを禁止していることがあります。 * 動かなくて良いので、**あなたの書いたソースコードはありますか?** 「私の代わりにイチから解いて欲しい」という風に他人に丸投げするだけだと、なかなか回答が集まりづらいです。 * **ご自身で考えているアルゴリズムを、第三者に説明できますか?** 「○○という風に動くアルゴリズムを実装したつもりなのだが、××のように上手く動かない」という風に質問して頂けると、回答者からも趣旨が理解しやすく、助かります。 これらの 3 点は、あくまでご自身の状況を確認してみてくださいというものです。必ずしもそうである必要はありません。 質問してみよう! スタック・オーバーフローではアルゴリズムに関する質問も大歓迎です! 是非質問してみてください。 よくあるのは、下のような形の質問です。 > > **タイトル**:クイックソートが時々終わらない > > > **本文**: > > AACoder Problem XXX がクイックソートで解けると思い、C++ で下のように実装しました。大体上手く動くのですが、下のようなケースで実行が終わらないときがあります。なぜ上手く動かないのでしょうか? > > > ### ソースコード > > > (ここにソースコードを直接コピー&ペーストする) > > > ### 上手く動かないケース > > > (ここに上手く動かないケースとその実行例をコピー&ペーストする) > > > 良い質問を書くコツは、以下の 3 点です。 1. 何を実装しようとしたのかを具体的に書く。 2. どういうケースで上手く動かないのか可能な限り書く。具体的なテストケースが分からない場合、そのことを説明頂けるとありがたいです。またたとえば、同じような間違い方をしていたらしいが直せている他の方のソースコードをリンクするという手段もあります。 3. どうしたいのか書く。動かない原因を知りたいだけなのか、具体的なソースコードまで知りたいのか、などなどです。 **これらが完璧でなくて大丈夫です!** スタック・オーバーフローでは、質問を後から自由に編集できます。もし足りていない情報があれば誰かがコメントで「○○の部分がよく分からなかったので教えてください」と聞いてくるでしょう。それから追記編集をすれば良いです🙂 ご質問お待ちしております! この回答は下書きです。「ここは素晴らしい」「ここは変えた方が良いんじゃないか」などのご意見を、コメントや編集としてお寄せ下さい。よろしくお願いいたします。