Submission #97412
Source Code Expand
#include <cstdio> #include <iostream> #include <sstream> #include <fstream> #include <iomanip> #include <algorithm> #include <cmath> #include <string> #include <vector> #include <list> #include <queue> #include <stack> #include <set> #include <map> #include <bitset> #include <numeric> #include <climits> #include <cfloat> #include <functional> using namespace std; int n; vector<int> r; vector<double> solve(int a, int b) { if(a == b - 1){ vector<double> ret(n, 0.0); ret[a] = 1.0; return ret; } int c = a + (b - a) / 2; vector<double> x = solve(a, c); vector<double> y = solve(c, b); vector<double> ret(n, 0.0); for(int i=a; i<c; ++i){ for(int j=c; j<b; ++j){ double p = 1.0 / (1.0 + pow(10.0, (r[j] - r[i]) / 400.0)); ret[i] += x[i] * y[j] * p; ret[j] += x[i] * y[j] * (1.0 - p); } } return ret; } int main() { cin >> n; n = 1 << n; r.resize(n); for(int i=0; i<n; ++i) cin >> r[i]; vector<double> ret = solve(0, n); for(int i=0; i<n; ++i) printf("%.10f\n", ret[i]); return 0; }
Submission Info
Submission Time | |
---|---|
Task | C - トーナメント |
User | mamekin |
Language | C++ (G++ 4.6.4) |
Score | 4 |
Code Size | 1203 Byte |
Status | AC |
Exec Time | 84 ms |
Memory | 916 KB |
Judge Result
Set Name | All | ||
---|---|---|---|
Score / Max Score | 4 / 4 | ||
Status |
|
Set Name | Test Cases |
---|---|
All | 00, 01, 02, 03, 90, 91 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00 | AC | 84 ms | 824 KB |
01 | AC | 84 ms | 820 KB |
02 | AC | 38 ms | 916 KB |
03 | AC | 84 ms | 824 KB |
90 | AC | 19 ms | 788 KB |
91 | AC | 19 ms | 780 KB |