0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AtCoder初心者振り返りメモ ABC326

Last updated at Posted at 2023-10-29

ABC326の回

参考リンク

A-問題

326A.png
ポイント
XとYの大小によって、上りと下りを判別

A.py
X,Y = map(int,input().split())

if (X < Y) and (Y - X) >= 3:
    print("No") 
elif (X > Y) and (X - Y) >= 4:
    print("No")    
else:
    print("Yes") 

B-問題

326B.png
ポイント
全探索用に条件に一致する判定をする関数を用意する

B.py
# 条件に合う場合にTrueを返す関数
def like(X):
    W = str(X)  # 文字列に一度変換
    A = int(W[0])
    B = int(W[1])
    C = int(W[2])

    if A * B == C:
        return True
# 入力
N = int(input())

for i in range(N,920):
    if like(i) :
        print(i)
        exit()

C-問題

326C.png

本番は、計算量が大きすぎてTLEを解決できませんでした。

ポイント
・enumerate関数で、リストのインデックスと値を同時に取り扱う
・bisect_leftを用いて二分探索し計算量を効率化する

c.py
from bisect import bisect_left
import math,sys,datetime,random,glob,os,re,bisect

N,M = map(int,input().split())
A = list(map(int, input().split()))
A.sort()

ans = 0

# enumerate関数で、リストのインデックスと値を同時にループする
for i, a in enumerate(A):

    # 二分探索で左から最初に該当する値のインデックスPを取得する
    P = bisect_left(A, M + a)

    ans = max(ans, P-i)
    
print(ans)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?