Submission #137893
Source Code Expand
{-# LANGUAGE MultiParamTypeClasses,FlexibleContexts,FlexibleInstances,TypeSynonymInstances,BangPatterns,RankNTypes,TupleSections #-} import Control.Monad import Control.Monad.ST import Control.Applicative import Control.Arrow import Debug.Trace import Text.Printf import Data.List import Data.Int import Data.Bits import Data.Maybe import Data.Array.Unboxed import Data.Array.ST import qualified Data.Map as M import qualified Data.Set as S import qualified Data.ByteString.Char8 as B readInt = fromJust . fmap fst . B.readInt readInts = map readInt . B.words <$> B.getLine readIntPair = l2p . map readInt . take 2 . B.words <$> B.getLine readLns :: Read a => IO [a] readLns = map read . words <$> getLine cmpFst (a,_) (b,_) = compare a b cmpSnd (_,a) (_,b) = compare a b cmpLen a b = length a `compare` length b swap (a,b) = (b,a) l2p (a:b:_) = (a,b) p2l (a,b) = [a,b] itof :: Int -> Double itof = fromIntegral defaultArray :: (IArray a e,Ix i) => e -> (i,i) -> [(i,e)] -> a i e defaultArray = accumArray $ curry snd flatten :: [(a,[(b,c)])] -> [((a,b),c)] flatten = (=<<) $ uncurry $ fmap . first . (,) main = do l <- map (l2p .map readInt. B.words) . B.lines <$> B.getContents let ((n1,m1):l1) = l (es1,((n2,m2):es2)) = splitAt m1 l1 let d1 = dist n1 es1 d2 = dist n2 es2 rMax1 = maximum $ elems d1 rMin1 = minimum $ elems d1 rMax2 = maximum $ elems d2 rMin2 = minimum $ elems d2 rMin = maximum [rMax1,rMax2,rMin1 + rMin2 + 1] rMax = rMax1 + rMax2 + 1 printf "%d %d\n" rMin rMax dist :: Int -> [(Int,Int)] -> UArray Int Int dist n es = listArray (0,n-1) [ f v | v <- [0..n-1] ] where g :: Array Int [Int] g = accumArray (flip (:)) [] (0,n-1) $ es ++ map swap es f v = runST $ do r <- newArray (0,n-1) False go r [v] [] 0 0 go :: STUArray s Int Bool -> [Int] -> [Int] -> Int -> Int -> ST s Int go _ [] [] d !acc = return acc go vis [] ns d !acc = go vis ns [] (d+1) acc go vis (v:l) !ns !d !acc = do b <- readArray vis v if b then go vis l ns d acc else do writeArray vis v True let acc' = max acc d ns' = g ! v ++ ns go vis l ns' d acc'
Submission Info
Submission Time | |
---|---|
Task | C - 直径 |
User | autotaker |
Language | Haskell (GHC 7.4.1) |
Score | 50 |
Code Size | 2331 Byte |
Status | TLE |
Exec Time | 2030 ms |
Memory | 6556 KB |
Judge Result
Set Name | Small | Large | ||||||
---|---|---|---|---|---|---|---|---|
Score / Max Score | 50 / 50 | 0 / 50 | ||||||
Status |
|
|
Set Name | Test Cases |
---|---|
Small | 10-small_random-00, 10-small_random-01, 10-small_random-02, 10-small_random-03, 10-small_random-04, 10-small_random-05, 10-small_random-06, 10-small_random-07, 10-small_random-08, 10-small_random-09, 10-small_random-10, 10-small_random-11, 10-small_random-12, 10-small_random-13, 10-small_random-14, 10-small_random-15, 10-small_random-16, 10-small_random-17, 10-small_random-18, 10-small_random-19, 21-small_path-00, 21-small_path-01, 21-small_path-02, 21-small_path-03, 21-small_path-04, 00-sample-00, 00-sample-01, 00-sample-02 |
Large | 00-sample-00, 00-sample-01, 00-sample-02, 10-small_random-00, 10-small_random-01, 10-small_random-02, 10-small_random-03, 10-small_random-04, 10-small_random-05, 10-small_random-06, 10-small_random-07, 10-small_random-08, 10-small_random-09, 10-small_random-10, 10-small_random-11, 10-small_random-12, 10-small_random-13, 10-small_random-14, 10-small_random-15, 10-small_random-16, 10-small_random-17, 10-small_random-18, 10-small_random-19, 20-small_tree-00, 20-small_tree-01, 20-small_tree-02, 20-small_tree-03, 20-small_tree-04, 21-small_path-00, 21-small_path-01, 21-small_path-02, 21-small_path-03, 21-small_path-04, 30-large_random-00, 30-large_random-01, 30-large_random-02, 30-large_random-03, 30-large_random-04, 30-large_random-05, 30-large_random-06, 30-large_random-07, 30-large_random-08, 30-large_random-09, 40-large_comp-00, 40-large_comp-01, 40-large_comp-02, 40-large_comp-03, 40-large_comp-04, 41-large_tree-00, 41-large_tree-01, 41-large_tree-02, 41-large_tree-03, 41-large_tree-04, 42-large_path-00, 42-large_path-01, 42-large_path-02, 42-large_path-03, 42-large_path-04 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00-sample-00 | AC | 77 ms | 1308 KB |
00-sample-01 | AC | 28 ms | 1308 KB |
00-sample-02 | AC | 25 ms | 1312 KB |
10-small_random-00 | AC | 26 ms | 1564 KB |
10-small_random-01 | AC | 29 ms | 1820 KB |
10-small_random-02 | AC | 28 ms | 1384 KB |
10-small_random-03 | AC | 27 ms | 1556 KB |
10-small_random-04 | AC | 27 ms | 1948 KB |
10-small_random-05 | AC | 30 ms | 1820 KB |
10-small_random-06 | AC | 26 ms | 1372 KB |
10-small_random-07 | AC | 26 ms | 1396 KB |
10-small_random-08 | AC | 27 ms | 1308 KB |
10-small_random-09 | AC | 26 ms | 1564 KB |
10-small_random-10 | AC | 28 ms | 1560 KB |
10-small_random-11 | AC | 28 ms | 1436 KB |
10-small_random-12 | AC | 29 ms | 1612 KB |
10-small_random-13 | AC | 29 ms | 1340 KB |
10-small_random-14 | AC | 30 ms | 1816 KB |
10-small_random-15 | AC | 28 ms | 1564 KB |
10-small_random-16 | AC | 29 ms | 1816 KB |
10-small_random-17 | AC | 29 ms | 1944 KB |
10-small_random-18 | AC | 28 ms | 1816 KB |
10-small_random-19 | AC | 28 ms | 1824 KB |
20-small_tree-00 | AC | 31 ms | 1816 KB |
20-small_tree-01 | AC | 27 ms | 1304 KB |
20-small_tree-02 | AC | 33 ms | 1820 KB |
20-small_tree-03 | AC | 27 ms | 1304 KB |
20-small_tree-04 | AC | 275 ms | 2336 KB |
21-small_path-00 | AC | 26 ms | 1308 KB |
21-small_path-01 | AC | 29 ms | 1312 KB |
21-small_path-02 | AC | 27 ms | 1312 KB |
21-small_path-03 | AC | 26 ms | 1308 KB |
21-small_path-04 | AC | 29 ms | 1436 KB |
30-large_random-00 | AC | 405 ms | 6296 KB |
30-large_random-01 | AC | 28 ms | 1824 KB |
30-large_random-02 | AC | 48 ms | 2072 KB |
30-large_random-03 | AC | 26 ms | 1352 KB |
30-large_random-04 | AC | 125 ms | 2584 KB |
30-large_random-05 | AC | 25 ms | 1436 KB |
30-large_random-06 | AC | 51 ms | 2080 KB |
30-large_random-07 | AC | 27 ms | 1756 KB |
30-large_random-08 | TLE | 2030 ms | 6552 KB |
30-large_random-09 | TLE | 2030 ms | 6556 KB |
40-large_comp-00 | AC | 29 ms | 1312 KB |
40-large_comp-01 | AC | 32 ms | 2076 KB |
40-large_comp-02 | AC | 29 ms | 1816 KB |
40-large_comp-03 | AC | 49 ms | 2716 KB |
40-large_comp-04 | AC | 138 ms | 3552 KB |
41-large_tree-00 | AC | 26 ms | 1304 KB |
41-large_tree-01 | AC | 28 ms | 1820 KB |
41-large_tree-02 | AC | 30 ms | 1816 KB |
41-large_tree-03 | AC | 60 ms | 1948 KB |
41-large_tree-04 | AC | 276 ms | 2328 KB |
42-large_path-00 | AC | 43 ms | 1880 KB |
42-large_path-01 | AC | 27 ms | 1572 KB |
42-large_path-02 | AC | 25 ms | 1692 KB |
42-large_path-03 | AC | 134 ms | 2204 KB |
42-large_path-04 | AC | 268 ms | 2332 KB |