GOODA  Good Travels
It's that time of year again  the best ACMICPC team of all time is off to the World Finals! Being the best, they realize that a good performance starts before the contest itself  in order to get into the perfect mindset, they must have as much fun on the trip to the contest site as possible!
The Team is interested in a network of N (2 <= N <= 10^6) cities (conveniently numbered 1..N), interconnected by M (1 <= M <= 10^6) oneway flights (similarly numbered 1..M). Their hometown is city S (1 <= S <= N), and the contest will take place in city E (1 <= E <= N, S != E). Flight i goes from city ai (1 <= ai <= N) to city bi (1 <= bi <= N, ai != bi), and no two flights connect the same pair of cities in the same direction. In general, no cities are guaranteed to be reachable from other cities by a sequence of flights. However, The Team of course knows that city E is reachable from city S  they're not about to break their streak of triumphant wins!
Now, each city i has a fun value, fi (0 <= fi <= 10^6), associated with it. Along their trip, The Team will take time to have fun at every city they visit, including the first and last. However, though they can visit a city multiple times (including cities S and E), or even take a certain flight multiple times, surely this gets boring quickly  therefore, any city's fun can only be had up to once.
The Team wants to determine the maximal amount of fun they can have on any sequence of flights that starts at city S and ends at city E. Naturally, every member on The Team is so intelligent that they've calculated this value in their heads (and are quite excited about it)  but can you?
Input
First line: 4 integers, N, M, S, and E
Next N lines: 1 integer, fi, for i = 1..N
Next M lines: 2 integers, ai and bi, for i = 1..M
Output
1 integer, the maximal amount of fun The Team can have on their trip.
Example
Input: 5 6 1 4 5 4 5 10 2 1 2 1 3 2 4 3 4 4 5 5 4 Output: 22
Explanation of Sample
The network of cities and flights looks like this (the fun values of cities are shown below them):
The optimal route that The Team can take goes through cities 1 → 3 → 4 → 5 → 4, yielding a total fun value of 5 + 5 + 10 + 2 + 0 = 22.
hide comments
mr_dot_convict:
20190603 16:33:49
Poor test cases. Wrong dp works. 

kanishk779:
20190324 13:29:41
Is this problem just about finding the strongly connected components and than summing up the values of cities in which S and E are located?? 

Siddharth:
20180623 18:57:17
Seems stack limit is increased. So recursive solutions work now. totally worth time :) 

m2do:
20180524 15:10:13
worth solving :) 

Shubham Jadhav:
20170506 16:15:26
Amazing problem! Surprisingly, AC in 1 go :) 

weramajstor:
20170130 22:28:02
Really nice problem,it takes few combinations of ideas and topics to solve this that is what it makes it fun and challenging. 

cosmopoliton:
20160530 19:32:18
nice question :) 

descrip:
20160220 02:49:24
Version of problem without small stack limit: http://wcipeg.com/problem/gooda Last edit: 20160220 02:49:38 

Ankit Sultana:
20151225 08:56:24
Use long long 

Miguel Oliveira:
20130802 12:42:50
nasty stack limit is nasty x) 
Added by:  SourSpinach 
Date:  20130509 
Time limit:  4s 
Source limit:  50000B 
Memory limit:  1536MB 
Cluster:  Cube (Intel G860) 
Languages:  All except: ASM64 
Resource:  Own problem 