Light OJ 1027 A Dangerous Maze (expected)

Source: Internet
Author: User

Light OJ 1027 A Dangerous Maze (expected)

 

1027-A Dangerous Maze
PDF (English) Statistics Forum
Time Limit: 2 second (s) Memory Limit: 32 MB

You are in a maze; seeingNDoors in front of you in beginning. You can choose any door you like. The probability for choosing a door is equal for all doors.

If you chooseIthDoor, it can either take you back to the same position where you begun inXiMinutes, or can take you out of the maze afterXiMinutes. If you come back to the same position, you can't remember anything. So, every time you come to the beginning position, you have no past experience.

Now you want to find the expected time to get out of the maze.

Input

Input starts with an integerT (≤ 100), Denoting the number of test cases.

Each case contains a blank line and an integerN (1 ≤ n ≤ 100)Denoting the number of doors. The next line containsNSpace separated integers. IfIthInteger(Xi)Is positive, you can assume thatIthDoor will take you out of maze afterXiMinutes. If it's negative, thenIthDoor will take you back to the beginning position afterAbs (xi)Minutes. You can safely assume that1 ≤ abs (xi) ≤ 10000.

Output

For each case, print the case number and the expected time to get out of the maze. If it's impossible to get out of the maze, print'Inf'. Print the result inP/qFormat. WherePIs the numerator of the result andQIs the denominator of the result and they are relatively prime. See the samples for details.

Sample Input Output for Sample Input

3

 

1

1

 

2

-10-3

 

3

3-6-9

Case 1: 1/1

Case 2: inf

Case 3: 18/1


 

 

Expectation for escaping from the starting point: the departure time is p Zheng * (the average time to exit) and returns to the starting point, p negative * (fabs (average of negative values) + expectation of the starting point)

So E = p positive * (Average Time Out) + p negative * (fabs (average value of negative number) + E)

 

 

#include
 
  #include
  
   #include
   
    #include#include
    
     #include
     
      #include
      
       #include
       
        #include
        
         #include
         #define L(x) (x<<1)#define R(x) (x<<1|1)#define MID(x,y) ((x+y)>>1)#define eps 1e-8//typedef __int64 ll;#define fre(i,a,b) for(i = a; i 
          
           = a;i--)#define mem(t, v) memset ((t) , v, sizeof(t))#define ssf(n) scanf("%s", n)#define sf(n) scanf("%d", &n)#define sff(a,b) scanf("%d %d", &a, &b)#define sfff(a,b,c) scanf("%d %d %d", &a, &b, &c)#define pf printf#define bug pf("Hi\n")using namespace std;#define INF 0x3f3f3f3f#define N 105int a[N];int b,s;int main(){int i,j,t,ca=0,n;sf(t);while(t--){s=b=0;int time_b=0,time_s=0;int x;sf(n);fre(i,0,n){ sf(x); if(x>0) {b++; time_b+=x;} else {s++;time_s+=-x;}} if(b==0) { pf("Case %d: inf\n",++ca); continue; } int up=time_b+time_s; int down=b; int s=__gcd(up,down); pf("Case %d: %d/%d\n",++ca,up/s,down/s);} return 0;}
          
        
       
      
     
    
   
  
 


 

 

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.