Task: | Onnenluku |
Sender: | |
Submission time: | 2015-09-12 18:26:24 +0300 |
Language: | Haskell |
Status: | READY |
Result: | 100 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 19 |
#2 | ACCEPTED | 33 |
#3 | ACCEPTED | 48 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.05 s | 1 | details |
#2 | ACCEPTED | 0.06 s | 1 | details |
#3 | ACCEPTED | 0.05 s | 1 | details |
#4 | ACCEPTED | 0.05 s | 1 | details |
#5 | ACCEPTED | 0.05 s | 1 | details |
#6 | ACCEPTED | 0.05 s | 2 | details |
#7 | ACCEPTED | 0.05 s | 2 | details |
#8 | ACCEPTED | 0.05 s | 2 | details |
#9 | ACCEPTED | 0.06 s | 2 | details |
#10 | ACCEPTED | 0.06 s | 2 | details |
#11 | ACCEPTED | 0.05 s | 3 | details |
#12 | ACCEPTED | 0.06 s | 3 | details |
#13 | ACCEPTED | 0.05 s | 3 | details |
#14 | ACCEPTED | 0.06 s | 3 | details |
#15 | ACCEPTED | 0.05 s | 3 | details |
Compiler report
input/code.hs:3:1: Warning: Top-level binding with no type signature: h :: forall a. (Num a, Ord a, Read a, Show a) => a -> a -> a -> Int input/code.hs:3:5: Warning: Defined but not used: `x' input/code.hs:3:7: Warning: Defined but not used: `y' input/code.hs:25:1: Warning: Top-level binding with no type signature: f :: forall a. (Num a, Ord a, Read a, Show a) => a -> a -> a -> Int input/code.hs:25:5: Warning: Defined but not used: `x' input/code.hs:25:7: Warning: Defined but not used: `y' input/code.hs:47:1: Warning: Top-level binding with no type signature: g :: forall a a1. (Integral a1, Num a, Ord a) => a -> a -> a1 input/code.hs:51:1: Warning: Defined but not used: `brute' input/code.hs:51:1: Warning: Top-level binding with no type signature: brute :: forall t. (Enum t, Num t, Show t) => t -> [t] input/code.hs:54:1: Warning: Top-level binding with no type signature: calc :: forall a. (Enum a, Num a, Ord a, R...
Code
import Data.List h 0 x y = 1 h n x y | n <= 9 = length [d | d <- [x,y], d <= n] | otherwise = let s = show n d = read [s !! 0] xres = if x < d then 2^(length s - 1) else if x == d then if n - x*10^(length s - 1) >= x*10^(length s - 2) then h (n - x*10^(length s - 1)) x y else 0 else 0 yres = if y < d then 2^(length s - 1) else if y == d then if n - y*10^(length s - 1) >= x*10^(length s - 2) then h (n - y*10^(length s - 1)) x y else 0 else 0 in xres + yres f 0 x y = 0 f n x y | n <= 9 = length [d | d <- [x,y], d <= n] | otherwise = let s = show n d = read [s !! 0] xres = if x < d then 2^(length s - 1) else if x == d then if n - x*10^(length s - 1) >= x*10^(length s - 2) then h (n - x*10^(length s - 1)) x y else 0 else 0 yres = if y < d then 2^(length s - 1) else if y == d then if n - y*10^(length s - 1) >= x*10^(length s - 2) then h (n - y*10^(length s - 1)) x y else 0 else 0 in xres + yres + 2^(length s) - 2 g n x = let ks = takeWhile (\k -> x*10^k <= 9*n + x) [0..] in last ks brute n = [k | k <- [1..n], let s = sort (show k), s !! 0 /= '0', length (group s) == 2] calc a b = sum [f b x y - f (a-1) x y | x <- [1..8], y <- [x+1..9]] - 8*sum [g b x - g (a-1) x | x <- [1..9]] main = do line <- getLine let [a,b] = map read (words line) :: [Integer] let res = calc a b putStrLn (show res)
Test details
Test 1
Group: 1
Verdict: ACCEPTED
input |
---|
2157 93337 |
correct output |
---|
1421 |
user output |
---|
1421 |
Test 2
Group: 1
Verdict: ACCEPTED
input |
---|
4875 95124 |
correct output |
---|
1278 |
user output |
---|
1278 |
Test 3
Group: 1
Verdict: ACCEPTED
input |
---|
5577 96352 |
correct output |
---|
1245 |
user output |
---|
1245 |
Test 4
Group: 1
Verdict: ACCEPTED
input |
---|
8362 92950 |
correct output |
---|
1076 |
user output |
---|
1076 |
Test 5
Group: 1
Verdict: ACCEPTED
input |
---|
5658 96660 |
correct output |
---|
1238 |
user output |
---|
1238 |
Test 6
Group: 2
Verdict: ACCEPTED
input |
---|
51312303535233 994542403556353 |
correct output |
---|
1453976 |
user output |
---|
1453976 |
Test 7
Group: 2
Verdict: ACCEPTED
input |
---|
25636920452341 934558290712847 |
correct output |
---|
1544072 |
user output |
---|
1544072 |
Test 8
Group: 2
Verdict: ACCEPTED
input |
---|
7917952071965 985207415843573 |
correct output |
---|
1763176 |
user output |
---|
1763176 |
Test 9
Group: 2
Verdict: ACCEPTED
input |
---|
48991581181227 907034837225965 |
correct output |
---|
1380248 |
user output |
---|
1380248 |
Test 10
Group: 2
Verdict: ACCEPTED
input |
---|
47968703305149 924246001328437 |
correct output |
---|
1396632 |
user output |
---|
1396632 |
Test 11
Group: 3
Verdict: ACCEPTED
input |
---|
292953755324413237753216241025... |
correct output |
---|
53286731528535944 |
user output |
---|
53286731528535944 |
Test 12
Group: 3
Verdict: ACCEPTED
input |
---|
373990979330820426927419348165... |
correct output |
---|
51580289482227600 |
user output |
---|
51580289482227600 |
Test 13
Group: 3
Verdict: ACCEPTED
input |
---|
701417326319476057561825658890... |
correct output |
---|
42924933948374952 |
user output |
---|
42924933948374952 |
Test 14
Group: 3
Verdict: ACCEPTED
input |
---|
177202883511434557056457305647... |
correct output |
---|
54500592365600640 |
user output |
---|
54500592365600640 |
Test 15
Group: 3
Verdict: ACCEPTED
input |
---|
977665117437419620152569155919... |
correct output |
---|
38562071809359800 |
user output |
---|
38562071809359800 |