fork download
  1. #include <bits/stdc++.h>
  2. #define up(i,a,b) for (int i = (int)a; i <= (int)b; i++)
  3. #define down(i,a,b) for (int i = (int)a; i >= (int)b; i--)
  4. #define f first
  5. #define s second
  6. using namespace std;
  7.  
  8. const int MAX = INT_MAX-2;
  9. const vector<pair<int, double> > bac_6 =
  10. {
  11. {0, 1.728},
  12. {50, 1.786},
  13. {100, 2.074},
  14. {200, 2.612},
  15. {300, 2.919},
  16. {400, 3.015},
  17. {MAX, 3.015}
  18. };
  19.  
  20. const vector<pair<int, double> > bac_5 =
  21. {
  22. {0, 1.728},
  23. {100, 2.074},
  24. {200, 2.612},
  25. {400, 3.111},
  26. {700, 3.457},
  27. {MAX, 3.457}
  28. };
  29.  
  30.  
  31. double calc(const vector<pair<int, double> > muc_gia, int so_dien){
  32. double sum = 0;
  33. for (int i = 1; i < (int)muc_gia.size(); i++){
  34. if (so_dien > muc_gia[i].f){
  35. sum += 1.0 * (muc_gia[i].f - muc_gia[i-1].f) * muc_gia[i-1].s;
  36. }
  37. else{
  38. int rem = so_dien - muc_gia[i-1].f;
  39. sum += 1.0 * rem * muc_gia[i-1].s;
  40. break;
  41. }
  42. // cout << sum << "\n";
  43. }
  44. // cout << "\n";
  45. return sum;
  46. }
  47.  
  48. signed main(){
  49. ios_base::sync_with_stdio(false);
  50. cin.tie(0);
  51. #define Task "A"
  52. if (fopen(Task".inp", "r")){
  53. freopen(Task".inp", "r", stdin);
  54. freopen(Task".out", "w", stdout);
  55. }
  56.  
  57. int so_dien;
  58. cin >> so_dien;
  59. double giabac6 = calc(bac_6, so_dien);
  60. double giabac5 = calc(bac_5, so_dien);
  61. double chenh_lech = giabac5 - giabac6;
  62. double ket_qua = chenh_lech*1000 + chenh_lech*100;
  63. cout << fixed << setprecision(2);
  64. cout << ket_qua;
  65. // cout << giabac5 << " " << giabac6 << " " << chenh_lech;
  66. // cout << "\n";
  67.  
  68. }
  69.  
Success #stdin #stdout 0.01s 5288KB
stdin
540
stdout
-22176.00