アプリ版:「スタンプのみでお礼する」機能のリリースについて

競技プログラミング初学者です。
AtCoderのABC244のC問題が分からなくて、公式解説 by leaf1415を確認したのですが、bool used[2005]; をmain関数の外でグローバル変数として宣言していました。bool used[2005];だけをmain関数内で宣言するように変えるとTLE(時間制限超過)になってしまいました。この理由が分かる方、ご教授いただけると幸いです。

A 回答 (3件)

atcoderの公式解説(YouTube)では、


(vector<bool>で定義してたりして、
解答例の書き方とちょっと違いますけど)
main内部で定義してますね。
    • good
    • 1
この回答へのお礼

助かりました

ありがとうございます!!

お礼日時:2022/04/04 00:55

グローバル変数の時は、「実行時に“0”(=false)に初期化」して


くれるそうです。
※ グローバル変数とローカル変数とで、
usedの中身を表示させてみると
わかります!
    • good
    • 0

① bool used[2005];の部分を、


vector<bool> used(2005); にしたら
通りました。

② また、 bool used[2005];の直後に、
「配列usedをfalseで初期化」したら、
通りました。

usedの値が不定だった…?
でもそうすると「グローバル」の時は…?
うーん。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!