Submission #1134313


Source Code Expand

#include <cstdio>

const int nmax = 16;

struct Table {
  constexpr Table() : dp() {
    dp[0] = 0.0;
    for(int x = 1; x < (1<<nmax); ++x) {
      if(x&1) {
        switch(x & 7){
          case 1: dp[x] = 3 +  dp[x>>1]; break;
          case 3: dp[x] = 3 + (dp[x>>1] + dp[x>>3])/2; break;
          case 5: dp[x] = 3 + (dp[x>>2] + dp[x>>3])/2; break;
          case 7: dp[x] = 3 + (2*dp[x>>1] + dp[x>>2] + dp[(x>>1)&~2] + 2*dp[x>>3])/6;
        }
      }
      else dp[x] = dp[x>>1];
    }
  }
  double dp[1<<nmax];
};

int main() {
  constexpr auto a = Table();
  int n, i, x;
  scanf("%d", &n);
  for(i=0;i<n;i++){
    int xi;
    scanf("%d", &xi);
    x |= 1 << xi;
  }

  printf("%.9g\n", a.dp[x]);
}

Submission Info

Submission Time
Task J - ボール
User ryuhei
Language C++14 (GCC 5.4.1)
Score 5
Code Size 740 Byte
Status AC
Exec Time 1 ms
Memory 640 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:26:18: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &n);
                  ^
./Main.cpp:29:21: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &xi);
                     ^

Judge Result

Set Name All
Score / Max Score 5 / 5
Status
AC × 6
Set Name Test Cases
All 00, 01, 02, 03, 90, 91
Case Name Status Exec Time Memory
00 AC 1 ms 640 KB
01 AC 1 ms 640 KB
02 AC 1 ms 640 KB
03 AC 1 ms 640 KB
90 AC 1 ms 640 KB
91 AC 1 ms 640 KB