Submission #58455909


Source Code Expand

{-# LANGUAGE BangPatterns #-}
{-# LANGUAGE BlockArguments #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE LambdaCase #-}
{-# HLINT ignore "Used otherwise as a pattern" #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
{-# OPTIONS_GHC -Wno-unrecognised-pragmas #-}

module Main where

import Control.Monad (filterM, foldM, foldM_, forM, forM_, replicateM, unless, when)
import Data.Array (Array)
import Data.Array.Base (MArray, UArray (UArray), freezeIOArray, getElems)
import Data.Array.IArray (IArray (bounds), accumArray, array, assocs, listArray, (!))
import qualified Data.Array.IArray as IA
import Data.Array.IO.Internals (IOArray (IOArray), IOUArray (IOUArray))
import Data.Array.MArray (freeze, newArray, readArray, writeArray)
import Data.Bifunctor (Bifunctor (bimap))
import Data.Bool
import Data.ByteString.Char8 (readInt)
import qualified Data.ByteString.Char8 as BC
import qualified Data.Char as C
import Data.Foldable (for_)
import Data.Graph (buildG, dfs)
import qualified Data.Heap as H
import Data.IORef (IORef, modifyIORef', newIORef)
import qualified Data.IntMap as IM
import qualified Data.IntSet as IS
import Data.Ix
import Data.List.Extra
import qualified Data.Map.Strict as M
import Data.Maybe (fromJust, fromMaybe, isNothing)
import Data.Ord (Down (Down), comparing)
import Data.Sequence (Seq ((:<|)), (|>))
import qualified Data.Sequence as Seq
import qualified Data.Set as S
import Data.Tree (Tree (subForest), flatten)
import qualified Data.Vector.Algorithms.Intro as VAI
import qualified Data.Vector.Unboxed as VU
import Debug.Trace
import GHC.IO
import System.Environment
import System.Exit

main :: IO ()
main = do
  s <- zip [1 ..] <$> getLine
  t <- zip [1 ..] <$> getLine

  print $ if s == t then 0 else solve s t

{-- lib --}
getInts :: IO [Int]
getInts = unfoldr (BC.readInt . BC.dropWhile C.isSpace) <$> BC.getLine

solve :: Eq a1 => [(a2, a1)] -> [(a2, a1)] -> a2
solve [] ((ti, tc) : _) = ti
solve ((si, sc) : _) [] = si
solve ((si, sc) : st) ((ti, tc) : tt)
  | sc /= tc = si
  | sc == tc = solve st tt
  | otherwise = error "invalid pattarn"

{-- debug --}
dbg :: (Show a) => a -> ()
dbg = case getDebugEnv of
  Just _ -> (`traceShow` ())
  Nothing -> const ()

getDebugEnv :: Maybe String
getDebugEnv = unsafePerformIO (lookupEnv "DEBUG")
{-# NOINLINE getDebugEnv #-}

Submission Info

Submission Time
Task B - Unvarnished Report
User flowert
Language Haskell (GHC 9.4.5)
Score 200
Code Size 2438 Byte
Status AC
Exec Time 2 ms
Memory 6944 KiB

Compile Error

app/Main.hs:13:1: warning: [-Wunused-imports]
    The import of ‘Control.Monad’ is redundant
      except perhaps to import instances from ‘Control.Monad’
    To import instances alone, use: import Control.Monad()
   |
13 | import Control.Monad (filterM, foldM, foldM_, forM, forM_, replicateM, unless, when)
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

app/Main.hs:14:1: warning: [-Wunused-imports]
    The import of ‘Data.Array’ is redundant
      except perhaps to import instances from ‘Data.Array’
    To import instances alone, use: import Data.Array()
   |
14 | import Data.Array (Array)
   | ^^^^^^^^^^^^^^^^^^^^^^^^^

app/Main.hs:15:1: warning: [-Wunused-imports]
    The import of ‘Data.Array.Base’ is redundant
      except perhaps to import instances from ‘Data.Array.Base’
    To import instances alone, use: import Data.Array.Base()
   |
15 | import Data.Array.Base (MArray, UArray (UArray), freezeIOArray, getElems)
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

app/Main.hs:16:1: warning: [-Wunused-imports]
    The import of ‘Data.Array.IArray’ is redundant
      except perhaps to import instances from ‘Data.Array.IArray’
    To import instances alone, use: import Data.Array.IArray()
   |
16 | import Data.Array.IArray (IArray (bounds), accumArray, array, assocs, listArray, (!))
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

app/Main.hs:17:1: warning: [-Wunused-imports]
    The qualified import of ‘Data.Array.IArray’ is redundant
      except perhaps to import instances from ‘Data.Array.IArray’
    To import instances alone, use: import Data.Array.IArray()
   |
17 | import qualified Data.Array.IArray as IA
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

app/Main.hs:18:1: warning: [-Wunused-imports]
    The import of ‘Data.Array.IO.Internals’ is redundant
      except perhaps to import instances from ‘Data.Array.IO.Internals’
    To import instances alone, use: import Data.Array.IO.Internals()
   |
18 | import Data.Array.IO.Internals (IOArray (IOArray), IOUArray (IOUArray))
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

app/Main.hs:19:1: warning: [-Wunused-imports]
    The import of ‘Data.Array.MArray’ is redundant
      except perhaps to import instances from ‘Data.Array.MArray’
    To import instances alone, use: import Data.Array.MArray()
   |
19 | import Data.Array.MArray (freeze, newArray, readArray, writeArray)
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

app/Main.hs:20:1: warning: [-Wunused-imports]
    The import of ‘Data.Bifunctor’ is redundant
      except perhaps to import instances from ‘Data.Bifunctor’
    To import instances alone, use: import Data.Bifunctor()
   |
20 | import Data.Bifunctor (Bifunctor (bimap))
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

app/Main.hs:21:1: warning: [-Wunused-imports]
    The import of ‘Data.Bool’ is redundant
      except perhaps to import instances from ‘Data.Bool’
    To import instances alone, use: import Data.Bool()
   |
21 | import Data.Bool
   | ^^^^^^^^^^^^^^^^

app/Main.hs:22:1: warning: [-Wunused-imports]
    The import of ‘Data.ByteString.Char8’ is redundant
      except perhaps to import instances from ‘Data.ByteString.Char8’
    To import instances alone, use: import Data.ByteString.Char8()
   |
22 | import Data.ByteString.Char8 (readInt)
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

app/Main.hs:25:1: warning: [-Wunused-imports]
    The import of ‘Data.Foldable’ is redundant
      except perhaps to import instances from ‘Data.Foldable’
    To import instances alone, use: import Data.Foldable()
   |
25 | import Data.Foldable (for_)
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^

app/Main.hs:26:1: warning: [-Wunused-imports]
    The import of ‘Data.Graph’ is redundant
      except perhaps to import instances from ‘Data.Graph’
    To import instances alone, use: import Data.Graph()
   |
26 | import Data.Graph (buildG, dfs)
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

app/Main.hs:27:1: warning: [-Wunused-imports]
    The qualified import of ‘Data.Heap’ is redundant
      except perhaps to import instances from ‘Data.Heap’
    To import instances alone, use: import Data.Heap()
   |
27 | import qualified Data.Heap as H
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

app/Main.hs:28:1: warning: [-Wunused-imports]
    The import of ‘Data.IORef’ is redundant
      except perhaps to import instances from ‘Data.IORef’
    To import instances alone, use: import Data.IORef()
   |
28 | import Data.IORef (IORef, modifyIORef', newIORef)
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

app/Main.hs:29:1: warning: [-Wunused-imports]
    The qualified import of ‘Data.IntMap’ is redundant
      except perhaps to import instances from ‘Data.IntMap’
    To import instances alone, use: import Data.IntMap()
   |
29 | import qualified Data.IntMap as IM
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

app/Main.hs:30:1: warning: [-Wunused-imports]
    The qualified import of ‘Data.IntSet’ is redundant
      except perhaps to import instances from ‘Data.IntSet’
    To import instances alone, use: import Data.IntSet()
   |
30 | import qualified Data.IntSet as IS
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

app/Main.hs:31:1: warning: [-Wunused-imports]
    The import of ‘Data.Ix’ is redundant
      except perhaps to import instances from ‘Data.Ix’
    To import instances alone, use: import Data.Ix()
   |
31 | import Data.Ix
   | ^^^^^^^^^^^^^^

app/Main.hs:33:1: warning: [-Wunused-imports]
    The qualified import of ‘Data.Map.Strict’ is redundant
      except perhaps to import instances from ‘Data.Map.Strict’
    To import instances alone, use: import Data.Map.Strict()
   |
33 | import qualified Data.Map.Strict as M
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

app/Main.hs:34:1: warning: [-Wunused-imports]
    The import of ‘Data.Maybe’ is redundant
      except perhaps to import instances from ‘Data.Maybe’
    To import instances alone, use: import Data.Maybe()
   |
34 | import Data.Maybe (fromJust, fromMaybe, isNothing)
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

app/Main.hs:35:1: warning: [-Wunused-imports]
    The import of ‘Data.Ord’ is redundant
      except perhaps to import instances from ‘Data.Ord’
    To import instances alone, use: import Data.Ord()
   |
35 | import Data.Ord (Down (Down), comparing)
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

app/Main.hs:36:1: warning: [-Wunused-imports]
    The import of ‘Data.Sequence’ is redundant
      except perhaps to import instances from ‘Data.Sequence’
    To import instances alone, use: import Data.Sequence()
   |
36 | import Data.Sequence (Seq ((:<|)), (|>))
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

app/Main.hs:37:1: warning: [-Wunused-imports]
    The qualified import of ‘Data.Sequence’ is redundant
      except perhaps to import instances from ‘Data.Sequence’
    To import instances alone, use: import Data.Sequence()
   |
37 | import qualified Data.Sequence as Seq
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

app/Main.hs:38:1: warning: [-Wunused-imports]
    The qualified import of ‘Data.Set’ is redundant
      except perhaps to import instances from ‘Data.Set’
    To import instances alone, use: import Data.Set()
   |
38 | import qualified Data.Set as S
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

app/Main.hs:39:1: warning: [-Wunused-imports]
    The import of ‘Data.Tree’ is redundant
      except perhaps to import instances from ‘Data.Tree’
    To import instances alone, use: import Data.Tree()
   |
39 | import Data.Tree (Tree (subForest), flatten)
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

app/Main.hs:40:1: warning: [-Wunused-imports]
    The qualified import of ‘Data.Vector.Algorithms.Intro’ is redundant
      except perhaps to import instances from ‘Data.Vector.Algorithms.Intro’
    To import instances alone, use: import Data.Vector.Algorithms.Intro()
   |
40 | import qualified Data.Vector.Algorithms.Intro as VAI
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

app/Main.hs:41:1: warning: [-Wunused-imports]
    The qualified import of ‘Data.Vector.Unboxed’ is redundant
      except perhaps to import instances from ‘Data.Vector.Unboxed’
    To import instances alone, use: import Data.Vector.Unboxed()
   |
41 | import qualified Data.Vector.Unboxed as VU
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

app/Main.hs:45:1: warning: [-Wunused-imports]
    The import of ‘System.Exit’ is redundant
      except perhaps to import instances from ‘System.Exit’
    To import instances alone, use: import System.Exit()
   |
45 | import System.Exit
   | ^^^^^^^^^^^^^^^^^^

app/Main.hs:49:13: warning: [-Wtype-defaults]
    • Defaulting the type variable ‘a0’ to type ‘Integer’ in the following constraints
        (Num a0) arising from the literal ‘1’ at app/Main.hs:49:13
        (Enum a0)
          arising from the arithmetic sequence ‘1 .. ’
          at app/Main.hs:49:12-17
        (Show a0) arising from a use of ‘print’ at app/Main.hs:52:3-7
        (Eq a0) arising from a use of ‘==’ at app/Main.hs:52:16-17
    • In the expression: 1
      In the first argument of ‘zip’, namely ‘[1 .. ]’
      In the first argument of ‘(<$>)’, namely ‘zip [1 .. ]’
   |
49 |   s <- zip [1 ..] <$> getLine
   |             ^

app/Main.hs:59:1: warning: [-Wincomplete-patterns]
    Pattern match(es) are non-exhaustive
    In an equation for ‘solve’:
        Patterns of type ‘[(a2, a1)]’, ‘[(a2, a1)]’ not matched: [] []
   |
59 | solve [] ((ti, tc) : _) = ti
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^...

app/Main.hs:59:16: warning: [-Wunused-matches]
    Defined but not used: ‘tc’
   |
59 | solve [] ((ti, tc) : _) = ti
   |                ^^

app/Main.hs:60:13: warning: [-Wunused-matches]
    Defined but not used: ‘sc’
   |
60 | solve ((si, sc) : _) [] = si
   |             ^^

app/Main.hs:61:25: warning: [-Wunused-matches]
    Defined but not used: ‘ti’
   |
61 | solve ((si, sc) : st) ((ti, tc) : tt)
   |                         ^^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 200 / 200
Status
AC × 3
AC × 25
Set Name Test Cases
Sample example_00.txt, example_01.txt, example_02.txt
All example_00.txt, example_01.txt, example_02.txt, hand_00.txt, hand_01.txt, hand_02.txt, hand_03.txt, hand_04.txt, hand_05.txt, hand_06.txt, random_00.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt
Case Name Status Exec Time Memory
example_00.txt AC 2 ms 6876 KiB
example_01.txt AC 2 ms 6776 KiB
example_02.txt AC 2 ms 6916 KiB
hand_00.txt AC 2 ms 6812 KiB
hand_01.txt AC 2 ms 6852 KiB
hand_02.txt AC 2 ms 6852 KiB
hand_03.txt AC 1 ms 6900 KiB
hand_04.txt AC 1 ms 6584 KiB
hand_05.txt AC 2 ms 6784 KiB
hand_06.txt AC 2 ms 6828 KiB
random_00.txt AC 2 ms 6672 KiB
random_01.txt AC 1 ms 6944 KiB
random_02.txt AC 1 ms 6876 KiB
random_03.txt AC 1 ms 6848 KiB
random_04.txt AC 1 ms 6824 KiB
random_05.txt AC 1 ms 6896 KiB
random_06.txt AC 2 ms 6880 KiB
random_07.txt AC 1 ms 6824 KiB
random_08.txt AC 1 ms 6664 KiB
random_09.txt AC 1 ms 6676 KiB
random_10.txt AC 1 ms 6944 KiB
random_11.txt AC 2 ms 6856 KiB
random_12.txt AC 1 ms 6652 KiB
random_13.txt AC 2 ms 6652 KiB
random_14.txt AC 2 ms 6900 KiB