fork download
  1. import Data.List
  2. import Control.Monad
  3. import Data.Maybe
  4. import qualified Data.Map as M
  5.  
  6. pickPattern :: Integer -> [[Integer]]
  7. pickPattern n = map (pick' [] n) [1..n]
  8. where
  9. pick' ns n1 n2
  10. | n1 == 0 = ns
  11. | n1 == n2 = pick' (-1:ns) (n1-1) n2
  12. | otherwise = pick' (0:ns) (n1-1) n2
  13.  
  14. pick :: [(Int, Integer)] -> Int -> [[(Int, Integer)]]
  15. pick xs n = filter (all ((>=0) . snd)) $ map hoge $ nub $ map total $ replicateM n $ pickPattern (genericLength xs)
  16. where
  17. total = foldl1 (zipWith (+))
  18. hoge = zipWith (\(a,b) c -> (a,b+c)) xs
  19.  
  20. solve :: [(Int, Integer)] -> Integer
  21. solve = snd . solve' M.empty
  22. where
  23. solve' m al@((a1, b1):xs)
  24. | all ((==0) . fst) al = (M.insert (sort al) 1 m, 1)
  25. | a1 == 0 = solve' m (xs ++ [(a1, b1)])
  26. | isJust (M.lookup (sort al) m) = (m, fromJust(M.lookup (sort al) m))
  27. | otherwise = (\(m', s) -> (M.insert (sort al) s m', s)) $ foldl (\(m',t) as -> (\(a,b) -> (a, b+t)) $ solve' m' ((a1-1, b1):as)) (m, 0) (pick xs 1)
  28.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
/opt/scala/bin/scalac: line 50: /dev/null: Permission denied
Main.scala:7: error: unclosed character literal
pickPattern n = map (pick' [] n) [1..n]
                         ^
Main.scala:9: error: unclosed character literal
    pick' ns n1 n2
        ^
Main.scala:11: error: unclosed character literal
      | n1 == n2 = pick' (-1:ns) (n1-1) n2
                       ^
Main.scala:12: error: unclosed character literal
      | otherwise = pick' (0:ns) (n1-1) n2
                        ^
Main.scala:21: error: unclosed character literal
solve = snd . solve' M.empty
                   ^
Main.scala:23: error: unclosed character literal
    solve' m al@((a1, b1):xs)
         ^
Main.scala:25: error: unclosed character literal
      | a1 == 0 = solve' m (xs ++ [(a1, b1)])
                       ^
Main.scala:27: error: unclosed character literal
      | otherwise = (\(m', s) -> (M.insert (sort al) s m', s)) $ foldl (\(m',t) as -> (\(a,b) -> (a, b+t)) $ solve' m' ((a1-1, b1):as)) (m, 0) (pick xs 1)
                        ^
Main.scala:27: error: unclosed character literal
      | otherwise = (\(m', s) -> (M.insert (sort al) s m', s)) $ foldl (\(m',t) as -> (\(a,b) -> (a, b+t)) $ solve' m' ((a1-1, b1):as)) (m, 0) (pick xs 1)
                                                        ^
Main.scala:27: error: unclosed character literal
      | otherwise = (\(m', s) -> (M.insert (sort al) s m', s)) $ foldl (\(m',t) as -> (\(a,b) -> (a, b+t)) $ solve' m' ((a1-1, b1):as)) (m, 0) (pick xs 1)
                                                                           ^
Main.scala:27: error: unclosed character literal
      | otherwise = (\(m', s) -> (M.insert (sort al) s m', s)) $ foldl (\(m',t) as -> (\(a,b) -> (a, b+t)) $ solve' m' ((a1-1, b1):as)) (m, 0) (pick xs 1)
                                                                                                                  ^
Main.scala:27: error: unclosed character literal
      | otherwise = (\(m', s) -> (M.insert (sort al) s m', s)) $ foldl (\(m',t) as -> (\(a,b) -> (a, b+t)) $ solve' m' ((a1-1, b1):as)) (m, 0) (pick xs 1)
                                                                                                                     ^
Main.scala:4: error: '.' expected but identifier found.
import qualified Data.Map as M
                 ^
Main.scala:6: error: identifier expected but ';' found.
pickPattern :: Integer -> [[Integer]]
^
Main.scala:7: error: expected class or object definition
pickPattern n = map (pick' [] n) [1..n]
^
Main.scala:8: error: expected class or object definition
  where
  ^
Main.scala:9: error: expected class or object definition
    pick' ns n1 n2
    ^
Main.scala:10: error: expected class or object definition
      | n1 == 0 = ns
      ^
Main.scala:11: error: expected class or object definition
      | n1 == n2 = pick' (-1:ns) (n1-1) n2
      ^
Main.scala:12: error: expected class or object definition
      | otherwise = pick' (0:ns) (n1-1) n2
      ^
Main.scala:14: error: expected class or object definition
pick :: [(Int, Integer)] -> Int -> [[(Int, Integer)]]
^
Main.scala:15: error: expected class or object definition
pick xs n = filter (all ((>=0) . snd)) $ map hoge $ nub $ map total $ replicateM n $ pickPattern (genericLength xs)
^
Main.scala:16: error: expected class or object definition
  where
  ^
Main.scala:17: error: expected class or object definition
    total = foldl1 (zipWith (+))
    ^
Main.scala:18: error: expected class or object definition
    hoge = zipWith (\(a,b) c -> (a,b+c)) xs
    ^
Main.scala:20: error: expected class or object definition
solve :: [(Int, Integer)] -> Integer
^
Main.scala:21: error: expected class or object definition
solve = snd . solve' M.empty
^
Main.scala:22: error: expected class or object definition
  where
  ^
Main.scala:23: error: expected class or object definition
    solve' m al@((a1, b1):xs)
    ^
Main.scala:24: error: expected class or object definition
      | all ((==0) . fst) al = (M.insert (sort al) 1 m, 1)
      ^
Main.scala:25: error: expected class or object definition
      | a1 == 0 = solve' m (xs ++ [(a1, b1)])
      ^
Main.scala:26: error: expected class or object definition
      | isJust (M.lookup (sort al) m) = (m, fromJust(M.lookup (sort al) m))
      ^
Main.scala:27: error: expected class or object definition
      | otherwise = (\(m', s) -> (M.insert (sort al) s m', s)) $ foldl (\(m',t) as -> (\(a,b) -> (a, b+t)) $ solve' m' ((a1-1, b1):as)) (m, 0) (pick xs 1)
      ^
33 errors found
spoj: The program compiled successfully, but Main.class was not found.
      Class Main should contain method: def main(args: Array[String]).
stdout
Standard output is empty