前提・実現したいこと
競技プログラミングの質問です。
atcoder beginner contest 142 C Go To Schoolを解いております。
問題はこちら
まずこちらのソースコードで提出をしたところ、TLEが出てしまいました。 (数字の小さいケースについてはACが出ています)
n = int(input()) A = list(map(int, input().split())) for i in range(1,n+1): print(A.index(i) + 1)
次に、他の方の提出を参考にしてこちらのソースコードで提出したところ、ACが出ました。
n = int(input()) a = list(map(int, input().split())) for i in range(n): a[i] = [a[i], i+1] a.sort() for i in range(n): print(a[i][1])
なぜ前者のコードではTLEで、後者は通るのかがわかりません。
最大計算量としては前者が10^5で後者が10^5*2ではないかと考えており、この考えが正しければ、むしろ後者の方が時間がかかるのでは・・・と思っております。
なぜこのような結果になるのか教えていただきたいです。
程度の低い質問でしたら申し訳ございません。
また、質問に必要な情報等に不足があれば、お手数ですがご指摘いただければ、追記いたします。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/15 08:30