Ringo's Favorite Numbers 2 を python で解く
競技プログラミングをはじめました。
おもしろいです。
TLE (Time Limit Exceeded): 問題で指定された実行時間以内にプログラムが終了しませんでした
なんてものがあるのですね。
愚直に回してTLEだった問題を解説読んだらできたので書いておこうと思いました。
問題 atcoder.jp
数列の要素を引き算して200の倍数になる組み合わせの総数を求めます。 全部試せば良いと思って最初に書いた回答 (TLE)
N = int(input()) A = list(map(int, input().split())) counter=0 all_set = [] for x in range(N): for i in range(N): if x+1 < i+1: if (A[x+1-1] - A[i+1-1]) % 200 == 0: counter+=1 print(counter)
解説を読むと
200で割った余りがA[j]と等しいA[i]の個数が分かればいい とあります。
Editorial - KYOCERA Programming Contest 2021(AtCoder Beginner Contest 200)
なるほどと思って書き直したもの
N = int(input()) A = list(map(int, input().split())) counter=0 a = [x%200 for x in A] for x in set(a): n = a.count(x) counter+=(n*(n-1))/2 print(int(counter))
できました~ 👌
1文字の変数名を使うのは背徳感があって良いですね...