Loading [MathJax]/jax/output/HTML-CSS/jax.js

MATT - Matts Trip

Matt finds himself in a desert with N (2N10) oases, each of which may have food, water, and/or a palm tree. If oasis i has food, then Fi=1 - otherwise, Fi=0. Similarly, Wi=1 if and only if oasis i has water, and Pi=1 if and only if it has a palm tree. These 3 values are completely independent of one another.

Some pairs of these oases are connected by desert paths, which each take 1 hour to traverse. There are M (0M45) such paths, with path i connecting distinct oases Ai and Bi in both directions (1Ai,BiN). No pair of oases is directly connected by more than one path, and it's not guaranteed that all oases are connected by some system of paths.

Matt starts at an oasis S, and wants to end up at a different oasis E (1S,EN).

Both of these oases are quite nice - it's guaranteed that FS=WS=PS=FE=WE=PE=1.

Since he's in a hurry to get out of the desert, he wants to travel there in at most H (1H109) hours.

However, he can only survive for up to MF hours at a time without food, and up to MW hours at a time without water (1MF,MW4). For example, if MF=1 and MW=2, then every single oasis he visits along the way must have food (as he would otherwise spend more than 1 hour without it), and he cannot visit 2 or more oases without water in a row.

Since Matt is a computer scientist, before actually going anywhere, he's interested in the number of different paths he can take that will get him from oasis S to oasis E alive in at most H hours.

Note that there may be no such paths.

Being a computer scientist, he of course only cares about this number modulo (109+7).

Input

Line 1: 7 integers, N, M, H, S, E, MF, and MW

Next N lines: 3 integers, Fi, Wi, and Pi, for i=1..N

Next M lines: 2 integers, Ai and Bi, for i=1..M

Output

1 integer, the number of different valid paths, modulo (109+7)

Example 1

Input:
3 3 3 1 2 1 4
1 1 1
1 1 1
0 1 0
1 2
2 3
1 3

Output:
2
Explanation:

The two possible paths, described in terms of oases visited, are 12 and 1212. Matt can never go to oasis 3, as it doesn't contain food, which he can't survive without for more than 1 hour. The path 121212 is not valid, as it would take 5 hours rather than at most 3.

Note that oasis 3 is the only oasis without a palm tree.

Example 2

Input:
5 5 3 3 2 3 2
1 0 0
1 1 1
1 1 1
0 0 1
0 1 0
1 2
1 3
1 4
3 4
4 2

Output:
2
Explanation:

The two possible paths are 312 and 342.

This time, oases 1 and 5 are lacking in palm trees.


Added by:SourSpinach
Date:2013-05-09
Time limit:8s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ASM64
Resource:Own problem

hide comments
2018-06-14 09:12:56 koushik s
if start and end are at the same oasis and not moving a single step is also considered as a valid path?

RE: Yes, that counts as a path which takes 0 time.

Last edit: 2018-12-02 10:47:21
2015-04-07 19:11:13 Radosav227
Fun problem , but there is a problem with the compilation on the SPOJ server.
I have written my solution in c# and ran it on ideone with your test cases and it is working fine there, it is also working on all of my machines , and i'm not even close to any of the limits, yet when i run it on the SPOJ server it get a SIGABRT error. Any ideas on how i can fix this?
2015-04-07 14:42:07 Red
I am trying to submit solution, and my program is working fine, but when i submit it outputs runtime error (SIGSEGV), i checked there's no overflow, not accessing any thing i did not put in memory. I tried to register on forum but it won't send mi activation mail that's why I'm posting this here. Can anyone tell me what should I do?
2015-04-06 02:28:55 Dragan Markoviæ
Very nice problem! :)

Last edit: 2015-04-06 02:42:47
2015-04-01 10:59:50 PetarV
Very nice problem! :)
2013-05-11 06:25:11 Federico Lebrón
Are the following two paths the same for Matt?

{A -> B -> A -> B -> C, A -> B -> C}

(That is, does Matt want walks, or paths? Does he count only simple paths, or with cycles as well?)

RE: Same as in sample 1, those are different paths, and paths with cycles are valid.

RE: Thanks :) AC, thanks a lot for this problem! I enjoyed it.

RE: Great, no problem!

Last edit: 2013-05-13 12:38:05
2013-05-10 16:44:22 Edelweiss
The Explanation of Example 1 should be "1->2", not "1->3". ^^

RE: Oops, thanks - it's been fixed.

Last edit: 2013-05-10 16:44:54
2013-05-10 16:44:22 Federico Lebrón
What are the palm trees used for?

RE: They look pretty nice.

Last edit: 2013-05-10 01:39:54
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.