import Control.Monad
import Data.Maybe
import qualified Data.ByteString.Char8 as BS
import Data.List
import qualified Data.Vector.Unboxed.Mutable as VUM

readInt = fst . fromJust . BS.readInt
readIntList = map readInt . BS.words
getInt = readInt <$> BS.getLine
getIntList = readIntList <$> BS.getLine

main = do
    n <- getInt
    as <- getIntList
    q <- getInt
    bc <- replicateM q $ do
        [b,c] <- getIntList
        return (b,c,c-b)
    vec <- VUM.replicate 100001 (0 :: Int)
    forM_ as $ \a -> VUM.modify vec (+1) a
    VUM.write vec 0 (sum as)
    forM_ bc $ \(b,c,d) -> do
        nb <- VUM.read vec b
        VUM.modify vec (+ nb) c
        VUM.write vec b 0
        s <- VUM.read vec 0
        print (s + d * nb)
        VUM.write vec 0 (s+d*nb)