Submission #1602150


Source Code Expand

//http://tdpc.contest.atcoder.jp/tasks/tdpc_tournament
//http://microbe.hatenablog.com/entry/2017/09/07/202517
#include <bits/stdc++.h>
#define REP(i,a,b) for(int i=(a);i<(b);i++)
typedef long long ll;
using namespace std;
const int INF=1e9, MOD=1e9+7;
const int MAX_N=10000;
int k,r[1024];
double dp[1024][11]; //dp[i][k]:=i番目の人がk連勝する確率
//dp[i][j+1] = for(auto s:S) dp[i][j+1]+=dp[i][j]*(iがsに勝つ確率)
//S:=iがjラウンド目に当たる可能性のある人。

double win(int p, int q){
	return 1.0/(1.0+pow(10.0,(q-p)/400.0));
}

int main(){
	cin >> k;
	REP(i,0,(1<<k)) cin >> r[i];
	
	REP(i,0,(1<<k)) dp[i][0]=1;
	REP(i,0,k){
		REP(j,0,(1<<k)) REP(l,0,(1<<k)){
			if((j>>i)!=(l>>i) and (j>>(i+1))==(l>>(i+1)))
				dp[j][i+1] += dp[j][i]*dp[l][i]*win(r[j], r[l]);
		}
	}
	
	cout << fixed << setprecision(9);
	REP(i,0,(1<<k)) cout << dp[i][k] << endl;
	
	return 0;
}

Submission Info

Submission Time
Task C - トーナメント
User ecasdqina
Language C++14 (GCC 5.4.1)
Score 4
Code Size 936 Byte
Status AC
Exec Time 98 ms
Memory 640 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 98 ms 640 KB
01 AC 96 ms 384 KB
02 AC 37 ms 384 KB
03 AC 96 ms 512 KB
90 AC 1 ms 256 KB
91 AC 1 ms 256 KB