Submission #17651342


Source Code Expand

import sys
from collections import defaultdict


def IN_I(): return int(sys.stdin.readline().rstrip())
def IN_LI(): return list(map(int, sys.stdin.readline().rstrip().split()))
def IN_S(): return sys.stdin.readline().rstrip()
def IN_LS(): return list(sys.stdin.readline().rstrip().split())
INF = float('inf')


class UnionFind:
    def __init__(self, n):
        self.n = n # 頂点数
        self.par = [i for i in range(n)] # 親
        self.rank = [0 for _ in range(n)] # 根の深さ

    # xの属する木の根を求める
    def find(self, x):
        if self.par[x] == x:
            return x
        else:
            self.par[x] = self.find(self.par[x])
            return self.par[x]

    # xとyの属する集合のマージ
    def unite(self, x, y):
        x = self.find(x)
        y = self.find(y)
        if x == y:
            return
        if self.rank[x] < self.rank[y]:
            self.par[x] = y
        else:
            self.par[y] = x
            if self.rank[x] == self.rank[y]:
                self.rank[x] += 1

    # xとyが同じ集合に属するかを判定
    def same(self, x, y):
        return self.find(x) == self.find(y)

    # すべての要素を親別に格納
    def get_groups(self):
        groups = defaultdict(list)
        for m in range(self.n):
            groups[self.find(m)].append(m)
        return groups


N, M = IN_LI()
A = IN_LI()
B = IN_LI()
uf = UnionFind(N)
for i in range(M):
    c, d = IN_LI()
    uf.unite(c-1, d-1)
trees = uf.get_groups()
for k, v in trees.items():
    sum_a = 0
    sum_b = 0
    for m in v:
        sum_a += A[m]
        sum_b += B[m]
    if sum_a != sum_b:
        print('No')
        exit()
print('Yes')

Submission Info

Submission Time
Task B - Values
User okayuki
Language PyPy3 (7.3.0)
Score 400
Code Size 1768 Byte
Status AC
Exec Time 465 ms
Memory 137540 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 4
AC × 44
Set Name Test Cases
Sample 00_sample_00, 00_sample_01, 00_sample_02, 00_sample_03
All 00_sample_00, 00_sample_01, 00_sample_02, 00_sample_03, 01_small_0, 01_small_1, 01_small_2, 01_small_3, 01_small_4, 01_small_5, 01_small_6, 01_small_7, 01_small_8, 01_small_9, 02_large_0, 02_large_1, 02_largecon_0, 02_largecon_1, 02_largecon_2, 02_largecon_3, 02_largecon_4, 02_largecon_5, 02_toolarge_0, 02_toolarge_1, 02_toolarge_2, 02_toolarge_3, 03_few_e_0, 03_few_e_1, 03_few_e_2, 03_few_e_3, 03_few_e_4, 03_few_e_5, 03_is_tree_0, 03_is_tree_1, 03_is_tree_2, 03_is_tree_3, 04_kill_overflow_0, 04_kill_overflow_1, 04_kill_overflow_2, 04_kill_overflow_3, 04_sumequal_0, 04_sumequal_1, 04_sumequal_2, 04_sumequal_3
Case Name Status Exec Time Memory
00_sample_00 AC 76 ms 64868 KiB
00_sample_01 AC 58 ms 64972 KiB
00_sample_02 AC 60 ms 64912 KiB
00_sample_03 AC 59 ms 65020 KiB
01_small_0 AC 60 ms 65072 KiB
01_small_1 AC 56 ms 64972 KiB
01_small_2 AC 61 ms 64976 KiB
01_small_3 AC 60 ms 64788 KiB
01_small_4 AC 62 ms 64888 KiB
01_small_5 AC 59 ms 65064 KiB
01_small_6 AC 62 ms 64956 KiB
01_small_7 AC 60 ms 64932 KiB
01_small_8 AC 57 ms 64968 KiB
01_small_9 AC 59 ms 64824 KiB
02_large_0 AC 306 ms 114376 KiB
02_large_1 AC 254 ms 82216 KiB
02_largecon_0 AC 388 ms 105680 KiB
02_largecon_1 AC 401 ms 117188 KiB
02_largecon_2 AC 395 ms 106344 KiB
02_largecon_3 AC 336 ms 99792 KiB
02_largecon_4 AC 420 ms 127180 KiB
02_largecon_5 AC 384 ms 107504 KiB
02_toolarge_0 AC 465 ms 130152 KiB
02_toolarge_1 AC 463 ms 130860 KiB
02_toolarge_2 AC 435 ms 129944 KiB
02_toolarge_3 AC 450 ms 130508 KiB
03_few_e_0 AC 143 ms 110792 KiB
03_few_e_1 AC 184 ms 137196 KiB
03_few_e_2 AC 159 ms 117680 KiB
03_few_e_3 AC 189 ms 137540 KiB
03_few_e_4 AC 184 ms 132876 KiB
03_few_e_5 AC 165 ms 126996 KiB
03_is_tree_0 AC 364 ms 108700 KiB
03_is_tree_1 AC 344 ms 104012 KiB
03_is_tree_2 AC 330 ms 98424 KiB
03_is_tree_3 AC 337 ms 99812 KiB
04_kill_overflow_0 AC 446 ms 123372 KiB
04_kill_overflow_1 AC 338 ms 98424 KiB
04_kill_overflow_2 AC 368 ms 99368 KiB
04_kill_overflow_3 AC 344 ms 98320 KiB
04_sumequal_0 AC 229 ms 105596 KiB
04_sumequal_1 AC 252 ms 82400 KiB
04_sumequal_2 AC 133 ms 77208 KiB
04_sumequal_3 AC 180 ms 90732 KiB