Submission #38447491
Source Code Expand
import qualified Data.IntMap as IM
main = do
[n,m] <- map read . words <$> getLine
uvs <- map (map read . words) . lines <$> getContents
let ans = abc287c n m uvs
putStrLn $ if ans then "Yes" else "No"
abc287c :: Int -> Int -> [[Int]] -> Bool
abc287c n m uvs = n == succ m && loop newUF uvs
where
loop _ [] = True
loop uf ((u:v:_):uvs) =
case uniteUF uf u v of
Nothing -> False
Just uf1 -> loop uf1 uvs
-- ふつうにUnion-Findでいけるはずだな。
type UF = IM.IntMap Int
newUF = IM.empty
getRoot :: UF -> Int -> (Int,Int)
getRoot uf i =
case IM.lookup i uf of
Nothing -> (i, 1)
Just k | k < 0 -> (i, -k)
| otherwise -> getRoot uf k
uniteUF :: UF -> Int -> Int -> Maybe UF
uniteUF uf i j
| a == b = Nothing
| s >= t = Just $ IM.insert a (negate $ s+t) $ IM.insert b a uf
| True = Just $ IM.insert b (negate $ s+t) $ IM.insert a b uf
where
(a,s) = getRoot uf i
(b,t) = getRoot uf j
Submission Info
| Submission Time | |
|---|---|
| Task | C - Path Graph? |
| User | joetheshootingst |
| Language | Haskell (GHC 8.8.3) |
| Score | 300 |
| Code Size | 1017 Byte |
| Status | WA |
| Exec Time | 1113 ms |
| Memory | 49324 KiB |
Compile Error
Loaded package environment from /home/contestant/.ghc/x86_64-linux-8.8.3/environments/default
Judge Result
| Set Name | Sample | All | AfterContest | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 300 / 300 | 0 / 0 | ||||||||
| Status |
|
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_example_00.txt, 00_example_01.txt, 00_example_02.txt |
| All | 00_example_00.txt, 00_example_01.txt, 00_example_02.txt, 01_dense_00.txt, 02_path_00.txt, 02_path_01.txt, 02_path_02.txt, 02_path_03.txt, 02_path_04.txt, 02_path_05.txt, 02_path_06.txt, 02_path_07.txt, 02_path_08.txt, 02_path_09.txt, 03_paths_00.txt, 03_paths_01.txt, 03_paths_02.txt, 04_cycles_00.txt, 04_cycles_01.txt, 04_cycles_02.txt, 04_cycles_03.txt, 04_cycles_04.txt, 04_cycles_05.txt, 05_corner_00.txt, 05_corner_01.txt, 05_corner_02.txt, 05_corner_03.txt, 05_corner_04.txt, 05_corner_05.txt, 06_random_00.txt, 06_random_01.txt, 06_random_02.txt, 06_random_03.txt, 06_random_04.txt, 07_small_00.txt, 07_small_01.txt |
| AfterContest | 08_after_contest_00.txt, 08_after_contest_01.txt, 08_after_contest_02.txt, 08_after_contest_03.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_example_00.txt | AC | 6 ms | 3832 KiB |
| 00_example_01.txt | AC | 2 ms | 3840 KiB |
| 00_example_02.txt | AC | 2 ms | 3696 KiB |
| 01_dense_00.txt | AC | 2 ms | 3784 KiB |
| 02_path_00.txt | AC | 1113 ms | 49168 KiB |
| 02_path_01.txt | AC | 1103 ms | 49324 KiB |
| 02_path_02.txt | AC | 435 ms | 22080 KiB |
| 02_path_03.txt | AC | 819 ms | 38676 KiB |
| 02_path_04.txt | AC | 437 ms | 23112 KiB |
| 02_path_05.txt | AC | 901 ms | 41736 KiB |
| 02_path_06.txt | AC | 359 ms | 21052 KiB |
| 02_path_07.txt | AC | 945 ms | 41568 KiB |
| 02_path_08.txt | AC | 419 ms | 23128 KiB |
| 02_path_09.txt | AC | 29 ms | 6592 KiB |
| 03_paths_00.txt | AC | 5 ms | 3712 KiB |
| 03_paths_01.txt | AC | 3 ms | 3804 KiB |
| 03_paths_02.txt | AC | 2 ms | 3648 KiB |
| 04_cycles_00.txt | AC | 3 ms | 3928 KiB |
| 04_cycles_01.txt | AC | 2 ms | 3812 KiB |
| 04_cycles_02.txt | AC | 3 ms | 3800 KiB |
| 04_cycles_03.txt | AC | 2 ms | 3656 KiB |
| 04_cycles_04.txt | AC | 4 ms | 3712 KiB |
| 04_cycles_05.txt | AC | 3 ms | 3712 KiB |
| 05_corner_00.txt | AC | 303 ms | 18260 KiB |
| 05_corner_01.txt | AC | 198 ms | 13920 KiB |
| 05_corner_02.txt | AC | 91 ms | 8844 KiB |
| 05_corner_03.txt | AC | 241 ms | 14916 KiB |
| 05_corner_04.txt | AC | 159 ms | 11768 KiB |
| 05_corner_05.txt | AC | 242 ms | 15940 KiB |
| 06_random_00.txt | AC | 2 ms | 3860 KiB |
| 06_random_01.txt | AC | 5 ms | 3780 KiB |
| 06_random_02.txt | AC | 2 ms | 3832 KiB |
| 06_random_03.txt | AC | 2 ms | 3828 KiB |
| 06_random_04.txt | AC | 2 ms | 3688 KiB |
| 07_small_00.txt | AC | 2 ms | 3644 KiB |
| 07_small_01.txt | AC | 4 ms | 3812 KiB |
| 08_after_contest_00.txt | WA | 835 ms | 39384 KiB |
| 08_after_contest_01.txt | WA | 745 ms | 34376 KiB |
| 08_after_contest_02.txt | WA | 45 ms | 6580 KiB |
| 08_after_contest_03.txt | AC | 3 ms | 3940 KiB |