Submission #1232644


Source Code Expand

#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
#include <iomanip>
#include <unordered_map>
#include <unordered_set>
#include <map>
#include <set>
using namespace std;

vector<double> r;
double pwin(int i,int j){
  return 1.0/(1.0+pow(10.0,(r[j]-r[i])/400.0));
}
long long M=1000000007;
int main(int argc, char const *argv[]) {
  int K;cin>>K;
  r=vector<double>(1<<K);
  for(int i=0;i<1<<K;++i)cin>>r[i];
  vector<double> dp(1<<K,1.0);
  for(int i=0;i<K;++i){
    int k=1<<i;
    vector<double> dp1(1<<K,0.0);
    for(int j=0;j<1<<K;j+=1<<(i+1)){
      for(int p=0;p<k;p++){
        for(int q=0;q<k;q++){
          dp1[j+p]+=pwin(j+p,j+k+q)*dp[j+k+q];
          dp1[j+p+k]+=pwin(j+p+k,j+q)*dp[j+q];
        }
      }
    }
    for(int j=0;j<1<<K;++j)dp[j]*=dp1[j];
  }
  for(int i=0;i<1<<K;++i)cout<<setprecision(20)<<dp[i]<<endl;
  return 0;
}

Submission Info

Submission Time
Task C - トーナメント
User pillow97
Language C++14 (GCC 5.4.1)
Score 4
Code Size 932 Byte
Status AC
Exec Time 80 ms
Memory 384 KB

Judge Result

Set Name All
Score / Max Score 4 / 4
Status
AC × 6
Set Name Test Cases
All 00, 01, 02, 03, 90, 91
Case Name Status Exec Time Memory
00 AC 80 ms 384 KB
01 AC 78 ms 256 KB
02 AC 20 ms 256 KB
03 AC 77 ms 256 KB
90 AC 1 ms 256 KB
91 AC 1 ms 256 KB