結果

問題 No.2319 Friends+
ユーザー 👑 amentorimaruamentorimaru
提出日時 2023-03-17 01:46:21
言語 PyPy3
(7.3.15)
結果
TLE  
(最新)
AC  
(最初)
実行時間 -
コード長 1,138 bytes
コンパイル時間 243 ms
コンパイル使用メモリ 82,432 KB
実行使用メモリ 206,236 KB
最終ジャッジ日時 2024-09-18 09:49:08
合計ジャッジ時間 40,347 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 41 ms
52,480 KB
testcase_01 AC 42 ms
51,840 KB
testcase_02 AC 735 ms
183,868 KB
testcase_03 AC 716 ms
183,416 KB
testcase_04 AC 729 ms
183,484 KB
testcase_05 AC 715 ms
183,700 KB
testcase_06 AC 719 ms
183,404 KB
testcase_07 AC 1,384 ms
196,644 KB
testcase_08 AC 1,912 ms
196,532 KB
testcase_09 AC 1,493 ms
196,628 KB
testcase_10 AC 1,411 ms
196,664 KB
testcase_11 AC 1,409 ms
197,260 KB
testcase_12 AC 54 ms
61,696 KB
testcase_13 AC 53 ms
61,696 KB
testcase_14 AC 55 ms
62,720 KB
testcase_15 AC 54 ms
61,184 KB
testcase_16 AC 54 ms
61,568 KB
testcase_17 AC 40 ms
52,096 KB
testcase_18 TLE -
testcase_19 AC 1,457 ms
198,656 KB
testcase_20 AC 732 ms
195,200 KB
testcase_21 AC 727 ms
195,584 KB
testcase_22 AC 751 ms
195,840 KB
testcase_23 AC 1,434 ms
199,936 KB
testcase_24 AC 762 ms
195,968 KB
testcase_25 AC 800 ms
195,852 KB
testcase_26 AC 851 ms
195,908 KB
testcase_27 AC 993 ms
196,396 KB
testcase_28 AC 756 ms
196,480 KB
testcase_29 AC 737 ms
196,452 KB
testcase_30 AC 727 ms
195,584 KB
testcase_31 AC 733 ms
195,456 KB
testcase_32 AC 699 ms
195,584 KB
testcase_33 AC 691 ms
195,476 KB
testcase_34 AC 672 ms
195,380 KB
testcase_35 AC 679 ms
195,640 KB
testcase_36 AC 1,308 ms
206,236 KB
testcase_37 AC 421 ms
182,400 KB
testcase_38 AC 499 ms
195,328 KB
testcase_39 AC 471 ms
194,688 KB
testcase_40 AC 456 ms
195,584 KB
testcase_41 AC 462 ms
195,200 KB
testcase_42 AC 454 ms
195,456 KB
testcase_43 AC 473 ms
195,584 KB
testcase_44 AC 493 ms
194,340 KB
testcase_45 AC 476 ms
189,928 KB
testcase_46 AC 438 ms
183,040 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys
import math
input = sys.stdin.readline
#sys.setrecursionlimit(10000000)
def read_values(): return map(int, input().split())
def read_index(): return map(lambda x: int(x) - 1, input().split())
def read_list(): return list(read_values())
def read_lists(N): return [read_list() for _ in range(N)]
            
def main():
    N,M=read_values()
    P=read_list()    
    pb=[[0]*(N//64+1) for _ in range(N)]
    for i in range(N):
        P[i]-=1
        pb[P[i]][i//64]^=1<<(i%64)
    fb=[[0]*(N//64+1) for _ in range(N)]
    for i in range(M):
        A,B=read_index()
        fb[A][B//64]^=1<<(B%64)
        fb[B][A//64]^=1<<(A%64)

    def solve(X,Y):
        if P[X]==P[Y]:
            return False
        for i in range(N//64+1):
            if fb[X][i]&pb[P[Y]][i]!=0:
                return True
        return False
    Q = int(input())
    for _ in range(Q):
        X,Y=read_index()
        if solve(X,Y):
            print("Yes")
            pb[P[X]][X//64]^=1<<(X%64)
            pb[P[Y]][X//64]^=1<<(X%64)
            P[X]=P[Y]
        else:
            print("No")           


if __name__ == "__main__":
    main()
0