利润提成

题目很简单,做的时候想到一种还不错的写法,记录在这里
思路清晰,不容易出错

  1. // #define SUBMIT
  2. #include <time.h>
  3. #include <iostream>
  4. using namespace std;
  5. int func(int a, int l, int r, double p) { // 通用公式
  6. return max(0, min(a, r) - l) * p;
  7. }
  8. int main() {
  9. #ifdef SUBMIT
  10. freopen("in.txt", "r", stdin);
  11. freopen("out.txt", "w", stdout);
  12. long _begin_time = clock();
  13. #endif
  14. int a;
  15. cin >> a;
  16. int ans = 0;
  17. ans += func(a, 0, 100000, 0.1);
  18. ans += func(a, 100000, 200000, 0.075);
  19. ans += func(a, 200000, 400000, 0.05);
  20. ans += func(a, 400000, 600000, 0.03);
  21. ans += func(a, 600000, 1000000, 0.015);
  22. ans += max(0, a - 1000000) * 0.01;
  23. cout << ans;
  24. #ifdef SUBMIT
  25. long _end_time = clock();
  26. printf("\n\ntime = %ld ms", _end_time - _begin_time);
  27. #endif
  28. return 0;
  29. }