Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.01 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <cstring>
  4. using namespace std;
  5. const int INF = 987654321;
  6. int cacheThree[61][61][61];
  7. int scvThree(int a, int b, int c)
  8. {
  9. // 음수가 나올시에는 0으로 바꿔준다.
  10. if (a < 0) return scvThree(0, b, c);
  11. if (b < 0) return scvThree(a, 0, c);
  12. if (c < 0) return scvThree(a, b, 0);
  13.  
  14. if (a == 0 && b == 0 && c == 0)
  15. return 0;
  16.  
  17. int& ret = cacheThree[a][b][c];
  18. if (ret != -1)
  19. return ret;
  20.  
  21. ret = INF;
  22. ret = min(ret, scvThree(a - 9, b - 3, c - 1) + 1);
  23. ret = min(ret, scvThree(a - 9, b - 1, c - 3) + 1);
  24.  
  25. ret = min(ret, scvThree(a - 1, b - 3, c - 9) + 1);
  26. ret = min(ret, scvThree(a - 1, b - 9, c - 3) + 1);
  27.  
  28. ret = min(ret, scvThree(a - 3, b - 1, c - 9) + 1);
  29. ret = min(ret, scvThree(a - 3, b - 9, c - 1) + 1);
  30.  
  31. return ret;
  32.  
  33. }
  34. int main()
  35. {
  36. int N;
  37. cin >> N;
  38. int cand[3] = { 0,0,0 };
  39. int ans;
  40.  
  41. for (int i = 0; i < N; ++i)
  42. cin >> cand[i];
  43.  
  44. memset(cacheThree, -1, sizeof(cacheThree));
  45. ans = scvThree(cand[0], cand[1], cand[2]);
  46.  
  47. cout << ans << "\n";
  48. return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement