AtCoder Beginner Contest 170 / Python
今回は全体的に酷かった。何でだろう。
B問題からミス連発。
いままで一番ミスが多かった。
そしてD問題は正解できず。こりゃダメだ。
結果
ですよね、知ってた。
まぁ、そうだよねぇ、レートもテンションも下がるわぁ。
問題と解答と勉強
提出したコード
x = list(map(int, input().split())) print(x.index(0) + 1)
開き直って今回は間違い探し企画だ!
皆さんわかるかな??
間違ってるやつ
X, Y = map(int, input().split()) n = (X*4 - Y) / 2 if n >=0 and n <= Y and n.is_integer(): print("Yes") else: print("No")
これを自信満々で提出したのだが、間違っている。
はい、どこが間違っているでしょう。
僕は何故か見つけられませんでした。
わかったかな。
答えを言うよ。
3行目の n <= Y
が n <= X
。
何でわからんかったのかなぁ、謎。
結局提出したコード
X, Y = map(int, input().split()) Flag = False for i in range(X+1): if i * 4 + (X - i)*2 == Y: Flag = True if Flag: print("Yes") else: print("No")
仕方がないので for 回して計算するので書き直した。
なんてこった。
間違ってるやつ
import sys X, N = map(int, input().split()) if N == 0: print(X) sys.exit() p = list(map(int, input().split())) for i in range(10): m = X - ((i//2 +1) * (-1)**i) if m not in p: print(m) break
これは何かもうどうしようもない。
for のところ、試しに回してた range(10) のまま提出している。
ガッカリだよ!
さらに間違ってるやつ
import sys X, N = map(int, input().split()) if N == 0: print(X) sys.exit() p = list(map(int, input().split())) for i in range(1000): m = X - ((i//2 +1) * (-1)**i) if m not in p: print(m) break
range は適当に 1000 に増やしたが、結局間違っている。
はい、何が違うでしょう。
ヒント、range は関係ない。もっと根本的な間違い。
わかったかな??
答えを出すよ。
提出したコード
import sys X, N = map(int, input().split()) if N == 0: print(X) sys.exit() p = list(map(int, input().split())) if X not in p: print(X) sys.exit() for i in range(1000): m = X - ((i//2 +1) * (-1)**i) if m not in p: print(m) break
真ん中んところね、X が答えになるパターンが抜けていた。
何で気が付かないかねぇ。
相当に時間を無駄にした後にやっと気が付けた。
間違ってるやつ
import sys import numpy as np N = int(input()) if N == 1: print(int(input())) sys.exit() A = set(map(int, input().split())) if len(A) == 1: print(0) sys.exit() A = np.array(sorted(A)) B = np.array([A[0]]) for i in range(len(A)-1): if np.all(A[i+1] % B != 0): B = np.append(B, A[i+1]) print(len(B))
わかったかな??
わかったら教えてください。
僕はわかっていません。
例題は全部通るんだけどねぇ、何が違うんだろう。
まあ TLE も出てるから間違いが直っても通らないんだけどね!
もうグダグダ!今回グダグダ!もうイヤ!知らない!
こういう考え方らしいよ
n = int(input()) a = sorted(list(map(int, input().split()))) max = a[-1] memo = ['Yes'] * (10**6+1) ans = 0 for i, a_i in enumerate(a): if memo[a_i] == 'No': continue for j in range(a_i, max+1, a_i): memo[j] = 'No' if i != n-1 and a_i == a[i+1]: continue ans += 1
なるほどなぁ。
ちゃんと勉強して自分流に書いた。
N = int(input()) A = sorted(list(map(int, input().split()))) + [0] memo = ['Y'] * (10**6+1) mx = max(A)+1 count = 0 for i in range(N): a = A[i] if memo[a] == 'N': continue for j in range(a, mx, a): memo[j] = 'N' if a == A[i+1]: continue count += 1 print(count)
もう今日は気悪いから E と F なんか見もしないからな!
もうイヤ!なんなん!キライ!