Submission #3418761
Source Code Expand
-- TDPC C - トーナメント import Control.Monad import Data.Maybe import Debug.Trace import Data.List import qualified Data.Map.Strict as Map import qualified Data.IntMap.Strict as IntMap import qualified Data.Set as Set import qualified Data.IntSet as IntSet main :: IO () main = do k <- readLn :: IO Int rs <- replicateM (2^k) readLn :: IO [Int] let dic = Map.fromListWith (+) . join $ solve k rs forM_ rs (\r -> print $ dic Map.! r) solve k rs = foldr (.) id (replicate k (aggregate . proceed)) $ initial where initial = map (:[]) . zip rs $ repeat 1 :: [[Prob]] type Prob = (Int, Double) prob :: Prob -> Prob -> [Prob] prob (p, pp) (q, qp) = let e = 1 / (1 + 10**(fromIntegral (q - p) / 400)) in [(p, pp * qp * e), (q, pp * qp * (1 - e))] proceed :: [[Prob]] -> [[Prob]] proceed [] = [] proceed (ps:qs:probs) = traceShow ret ret where ret = join [prob p q | p <- ps, q <- qs] : proceed probs aggregate :: [[Prob]] -> [[Prob]] aggregate = map (Map.toList . Map.fromListWith (+))
Submission Info
Submission Time | |
---|---|
Task | C - トーナメント |
User | utopian |
Language | Haskell (GHC 7.10.3) |
Score | 0 |
Code Size | 1055 Byte |
Status | WA |
Exec Time | 2104 ms |
Memory | 6524 KB |
Judge Result
Set Name | All | ||||||
---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 4 | ||||||
Status |
|
Set Name | Test Cases |
---|---|
All | 00, 01, 02, 03, 90, 91 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00 | TLE | 2104 ms | 5500 KB |
01 | TLE | 2104 ms | 6524 KB |
02 | WA | 883 ms | 3708 KB |
03 | TLE | 2104 ms | 6524 KB |
90 | AC | 1 ms | 508 KB |
91 | AC | 3 ms | 1020 KB |