fork download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int l, p, v;
  6.  
  7. int casecnt;
  8. int campDay;
  9.  
  10. void camp()
  11. {
  12. if (v > p)
  13. {
  14. v -= p; // 20 -= 8
  15. campDay += (p - (p-l)) ;
  16. camp(); // 재귀적으로 계속 누적
  17. }
  18. else
  19. {
  20. p = v;
  21. v = 0;// l은 이제 남은것이 없기때문에 0 으로 처리
  22.  
  23. if (l < p)
  24. campDay += p - l;
  25. else
  26. campDay += p;
  27.  
  28. ++casecnt;
  29. cout << "Case " << casecnt << ": " << campDay << endl;
  30. campDay = 0;
  31. return;
  32. }
  33. }
  34.  
  35. int main(void)
  36. {
  37. while (1)
  38. {
  39. cin >> l >> p >> v;
  40.  
  41. if ((l == 0) && (p == 0) && (v == 0)) return 0;
  42.  
  43. camp();
  44. }
  45.  
  46. return 0;
  47. }
Success #stdin #stdout 0s 4368KB
stdin
10 100 100000
123 456 789
0 0 0
stdout
Case 1: 10080
Case 2: 333