なかなか難しかったですね。。。
b = input()
n = int(input())
#2位の当選リスト
c = ['1' + str(i) + b[-4:] for i in range(10) if '1' + str(i) + b[-4:] != b ]
#3位の当選リスト
d = []
for i in range(100):
if i < 10:
d.append('10' + str(i) + b[-3:])
elif i > 10:
d.append('1' + str(i) + b[-3:])
#3位のリストから1等や2等にあるものを抜く
for i in d:
if i == b:
d.remove(i)
for j in c:
if i == j:
d.remove(i)
flag = False
#宝くじ
for _ in range(n):
cur_num = input()
if cur_num == b:
print('first')
flag = True
break
elif cur_num == str(int(b)+1) or cur_num == str(int(b)-1):
print('adjacent')
flag = True
break
for i in c:
if cur_num == i:
print('second')
flag = True
break
for i in d:
if cur_num == i:
print('third')
flag = True
break
if flag == False:
print('blank')
あかんかったです。
タイムアップしてしまったので、
答えを見ると言われてみればそうだ===と思ってしまいました。
なるほど。。。まだまだです。
python以外だと、下4桁が一致しているかどうかは10000で割った余りが同じになればOK
下3桁は1000ですね。
余りの性質をよくわかっていなかったです。。。
a = input()
n = int(input())
for i in range(n):
b = input()
if a == b:
print("first")
# 絶対値の差が1だったらadjacent
elif abs(int(a) - int(b)) == 1:
print("adjacent")
# 2位の条件というのはそもそも3番目から下が同じになればいいので
# 文字列で比較すればよかった
elif a[2:] == b[2:]:
print("second")
# 3位の条件というのはそもそも4番目から下が同じになればいいので
# 文字列で比較すればよかった
elif a[3:] == b[3:]:
print("third")
else:
print("blank")