Thursday, 27 July 2017

Lightoj 1030 - Discovering Gold

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int main(){
  4.     int ts;
  5.     cin>>ts;
  6.     for(int k = 1; k <= ts; k++){
  7.     int n;
  8.     cin>>n;
  9.     int a[n];
  10.     double e[n];
  11.     memset(a, 0sizeof(a));
  12.     memset(e, 0sizeof(e));
  13.     for(int i = 0; i <n; i++) cin>>a[i];
  14.     e[n-1] = a[n-1]*1.00;
  15.     for(int i = n-2; i >= 0; i--){
  16.         if(n-i<=6) {
  17.             for(int j = i+1; j <n; j++){
  18.                 e[i] += e[j];
  19.                 }
  20.                 e[i]/= (n-i-1)*1.00;
  21.                 e[i]+= a[i]*1.0;
  22.             }
  23.         else{
  24.             for(int j = i+1; j <= i+6; j++){
  25.                 e[i] += e[j];
  26.             }
  27.             e[i]/=6.00;
  28.             e[i]+= a[i]*1.00;
  29.         }
  30.     }
  31.     printf("Case %d: %0.10lf\n",k,e[0]);
  32.     }
  33.     return 0;
  34. }

No comments:

Post a Comment

Most Featured Post

Lightoj 1159 - Batman

http://lightoj.com/volume_showproblem.php?problem=1159 problem analysis: First i thought of this as if s1, s2 and s3 are those three str...