結果
| 問題 |
No.1242 高橋君とすごろく
|
| コンテスト | |
| ユーザー |
uni_python
|
| 提出日時 | 2020-10-03 11:48:21 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 48 ms / 2,000 ms |
| コード長 | 1,356 bytes |
| コンパイル時間 | 262 ms |
| コンパイル使用メモリ | 82,120 KB |
| 実行使用メモリ | 59,264 KB |
| 最終ジャッジ日時 | 2024-07-20 02:53:06 |
| 合計ジャッジ時間 | 2,383 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 24 |
ソースコード
import sys
input=sys.stdin.readline
def I(): return int(input())
def MI(): return map(int, input().split())
def LI(): return list(map(int, input().split()))
def main():
mod=10**9+7
N,K=MI()
A=LI()
for i in range(K):
A[i]-=1
new=[-1]
for i in range(K):
for j in range(i+1,K):
a=abs(A[i] - A[j])
temp=-1
if a==1:# 3,4,新しくできたところより8つ以上下がるとx
temp=min(A[i],A[j])-3 -8
elif a==3:# 2,5,新しくできたところより3つ以上下がるとx
temp=min(A[i],A[j])-2 -3
elif a==5:# 1,6 新しくできたところより8つ以上下がるとx
temp=min(A[i],A[j])-1 -8
new.append(temp)
# 小さいところはきちんとやる必要あり
M=100
aaa=[0]*(M+6)
for a in A:
if a>=M:
break
aaa[a]=1
for i in range(M,-1,-1):
if aaa[i+1] and aaa[i+6]:
aaa[i]=1
elif aaa[i+2] and aaa[i+5]:
aaa[i]=2
elif aaa[i+3] and aaa[i+4]:
aaa[i]=3
if aaa[0]:
new.append(1)
if max(new)>=1:
print("No")
else:
print("Yes")
main()
uni_python