Advertisement
Guest User

Untitled

a guest
Dec 16th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.92 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #pragma comment(linker, "/stack:512000000")
  3. #include<utility>
  4. #include<iostream>
  5. #include<fstream>
  6. #include<vector>
  7. #include<cstdio>
  8. #include<cstring>
  9. #include<algorithm>
  10. #include<cmath>
  11. #include<ctime>
  12. #include<functional>
  13. #include<random>
  14. #include<climits>
  15. #include<queue>
  16. #include<stack>
  17. #include<deque>
  18. #include<bitset>
  19. #include<map>
  20. #include<set>
  21. #include<unordered_map>
  22. #include<unordered_set>
  23. #include<cassert>
  24. #include<ccomplex>
  25.  
  26. //4Head
  27.  
  28. #define all(x) x.begin(), x.end()
  29. #define mp make_pair
  30. #define X first
  31. #define Y second
  32.  
  33. using namespace std;
  34. using ll = long long;
  35. using ull = unsigned long long;
  36. using ld = long double;
  37. mt19937_64 gen(time(NULL));
  38.  
  39. ll const mod = 1e9 + 7;
  40.  
  41. namespace {
  42.     ll mul(ll a, ll b) {
  43.         ll val = a * b - (ll)((ld)a * b / mod) * mod;
  44.         if (val < 0) val += mod;
  45.         if (val >= mod) val -= mod;
  46.         return val;
  47.     }
  48.  
  49.     ll poww(ll a, ll b) {
  50.         ll val = 1;
  51.         a %= mod;
  52.         while (b > 0) {
  53.             if (b % 2) val = mul(a, val);
  54.             a = mul(a, a);
  55.             b >>= 1;
  56.         }
  57.         return val % mod;
  58.     }
  59.  
  60.     ll inv(ll a) {
  61.         return poww(a, mod - 2);
  62.     }
  63. }
  64.  
  65. ll const maxn = 3e5 + 5;
  66.  
  67. vector<int>proeb[29];
  68. vector<int>gg[29];
  69.  
  70. int cntt[29];
  71.  
  72. signed main() {
  73.     ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  74.     int n; cin >> n;
  75.     vector<string>a(29);
  76.     a[0] = "0.0000000000 0.0000000000";
  77.     a[1] = "0.0000000000 0.0000000000";
  78.     a[2] = "0.0000000000 0.0000000000";
  79.     a[3] = "0.0000000000 0.0000000000";
  80.     a[4] = "0.0000000000 0.0000000000";
  81.     a[5] = "0.0000000000 0.0000000000";
  82.     a[6] = "0.0005574136 0.0017916866";
  83.     a[7] = "0.0039018952 0.0125418060";
  84.     a[8] = "0.0154048849 0.0495880931";
  85.     a[9] = "0.0454444108 0.1475372454";
  86.     a[10] = "0.1118763771 0.3717963958";
  87.     a[11] = "0.2403215397 0.8344544472";
  88.     a[12] = "0.4549758224 1.6952217253";
  89.     a[13] = "0.7483375959 3.1100681699";
  90.     a[14] = "1.0000000000 4.9065094007";
  91.     a[15] = "1.0000000000 6.2413947269";
  92.     a[16] = "1.0000000000 7.3187740166";
  93.     a[17] = "1.0000000000 8.2398366314";
  94.     a[18] = "1.0000000000 9.0541106491";
  95.     a[19] = "1.0000000000 9.7892325070";
  96.     a[20] = "1.0000000000 10.4654765525";
  97.     a[21] = "1.0000000000 11.0985481910";
  98.     a[22] = "1.0000000000 11.7000716675";
  99.     a[23] = "1.0000000000 12.2783882784";
  100.     a[24] = "1.0000000000 12.8395604396";
  101.     a[25] = "1.0000000000 13.3882783883";
  102.     a[26] = "1.0000000000 13.9285714286";
  103.     a[27] = "1.0000000000 14.4642857143";
  104.     a[28] = "1.0000000000 15.0000000000";
  105.    
  106.     cout << a[n] << endl;
  107.  
  108.     return 0;
  109.     //freopen("output.txt", "w", stdout);
  110.     vector<ld>ans1(29);
  111.     vector<ld>ans2(29);
  112.     for (ll mask = 0; mask < (1LL << 28); mask++) {
  113.         bool kek[4][7];
  114.         int bit = 0;
  115.         ll cnt = 0;
  116.         for (int i = 0; i < 4; i++) {
  117.             for (int j = 0; j < 7; j++) {
  118.                 kek[i][j] = ((1LL << bit) & mask);
  119.                 cnt += kek[i][j];
  120.                 bit++;
  121.             }
  122.         }
  123.         cnt = 28 - cnt;
  124.         cntt[cnt]++;
  125.     }
  126.     for (ll mask = 0; mask < (1LL << 28); mask++) {
  127.         bool kek[4][7];
  128.         int bit = 0;
  129.         ll cnt = 0;
  130.         for (int i = 0; i < 4; i++) {
  131.             for (int j = 0; j < 7; j++) {
  132.                 kek[i][j] = ((1LL << bit) & mask);
  133.                 cnt += kek[i][j];
  134.                 bit++;
  135.             }
  136.         }
  137.         cnt = 28 - cnt;
  138.         bool f = true;
  139.         while (f) {
  140.             f = false;
  141.             for (int i = 0; i < 4; i++) {
  142.                 for (int j = 0; j < 7; j++) {
  143.                     if (kek[i][j] == 0) {
  144.                         int cnti = 0;
  145.                         for (int ii = 0; ii < 4; ii++) {
  146.                             cnti += kek[ii][j];
  147.                         }
  148.                         int cntj = 0;
  149.                         for (int ii = 0; ii < 7; ii++) {
  150.                             cntj += kek[i][ii];
  151.                         }
  152.                         if (cntj >= 5 || cnti >= 3) {
  153.                             kek[i][j] = 1;
  154.                             f = true;
  155.                         }
  156.                     }
  157.                 }
  158.             }
  159.         }
  160.         int cnt1 = 0;
  161.         for (int i = 0; i < 3; i++) {
  162.             for (int j = 0; j < 5; j++) {
  163.                 if (!kek[i][j]) {
  164.                     cnt1++;
  165.                 }
  166.             }
  167.         }
  168.         ans2[cnt] += (ld)cnt1 / cntt[cnt];
  169.         ans1[cnt] += (ld)(cnt1 == 0) / cntt[cnt];
  170.     }
  171.     cout << fixed;
  172.     cout.precision(10);
  173.     for (ll i = 0; i <= 28; i++) {
  174.         cout << (1 - ans1[i]) << " " << ans2[i] << endl;
  175.     }
  176.  
  177.     return 0;
  178. }
  179.  
  180. /*
  181.  
  182. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement