依次從a拿2或拿1,a,b兩堆拿的,加起來都要是3

想法

暴力解是這樣,但會超時

for _ in range(int(input())):
    a,b = map(int,input().split())

    while True:
        if (a+b)%3:
            print("NO")
            break

        if a<0 or b <0:
            print("NO")
            break

        elif a==0 and b==0:
            print("YES")
            break

        if a>b:
            a-=2
            b-=1
        else:
            a-=1
            b-=2

數學解

如果小的那邊”太小”,就沒辦法

for _ in range(int(input())):
    a, b = map(int, input().split())
    if (a + b) % 3 == 0 and 2 * min(a, b) >= max(a, b):
        print("YES")
    else:
        print("NO")

這個解法比較好但比較想不到


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *