Advertisement
K_Y_M_bl_C

ЕБАНЫЙ РОТ ЭТОГО КАЗИНО БЛЯТЬ

Nov 27th, 2017
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.54 KB | None | 0 0
  1. #ifdef _DEBUG
  2. #define _GLIBCXX_DEBUG
  3. #endif
  4. #include <bits/stdc++.h>
  5.  
  6. using namespace std;
  7.  
  8. typedef long long ll;
  9. typedef vector<int> vi;
  10. typedef pair<int, int> pii;
  11.  
  12. #define X first
  13. #define Y second
  14. #define inb push_back
  15. #define mk make_pair
  16. #define all(v) (v).begin(), (v).end()
  17. #define sqr(x) ((x) * (x))
  18.  
  19. int solve()
  20. {
  21.     int n, m;
  22.     double s;
  23.     cin >> n >> m >> s;
  24.     vector<pair<int, double>> p(m);
  25.     for (int i = 0; i < m; ++i)
  26.     {
  27.         int pt;
  28.         double tt;
  29.         cin >> tt >> pt;
  30.         p[i] = mk(pt, tt / s);
  31.     }
  32.     vector<double> dp(n);
  33.     for (int it = 0; it < 100000; ++it)
  34.     {
  35.         for (int c = 0; c < n; ++c)
  36.         {
  37.             dp[c] = 0;
  38.             for (int i = 0; i < m; ++i)
  39.             {
  40.                 double cur = 0;
  41.                 if (c + p[i].X > n - 1)
  42.                 {
  43.                     cur += p[i].Y;
  44.                 }
  45.                 else
  46.                 {
  47.                     cur += dp[c + p[i].X] * p[i].Y;
  48.                 }
  49.                 if (c)
  50.                 {
  51.                     cur += dp[c - 1] * (1.0 - p[i].Y);
  52.                 }
  53.                 dp[c] = max(cur, dp[c]);
  54.             }
  55.         }
  56.     }
  57.     cout << setprecision(15) << fixed << dp[n - 1];
  58.     return 0;
  59. }
  60.  
  61. int main()
  62. {
  63.     #define TASK "casino"
  64.     #ifdef _DEBUG
  65.     freopen("input.txt", "r", stdin), freopen("output.txt", "w", stdout);
  66.     #else
  67.     freopen(TASK".in", "r", stdin), freopen(TASK".out", "w", stdout);
  68.     #endif
  69.     solve();
  70.     return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement