anon20016

H

Nov 18th, 2019
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. #define _CRT_SECURE_NO_DEPRECATE
  2.  
  3. #include <iostream>
  4. #include <vector>
  5. #include <string>
  6. #include <map>
  7. #include <set>
  8. #include <algorithm>
  9.  
  10. #define ull unsigned long long
  11. #define ll long long
  12.  
  13. using namespace std;
  14.  
  15. const int N = 300001;
  16. const ll INF = 1000ll * 1000 * 1000 * 1000 * 1000 * 1000ll;
  17.  
  18. //ll a[N];
  19. ll d[N];
  20.  
  21.  
  22. int main() {
  23. //freopen("input.txt", "r", stdin);
  24. //freopen("output.txt", "w", stdout);
  25. vector<ll> g;
  26. g.push_back(1);
  27. while (g[g.size() - 1] + (g.size() + 1) <= 300000) {
  28. g.push_back(g[g.size() - 1] + (g.size() + 1));
  29. }
  30. vector<ll> a;
  31. a.push_back(g[0]);
  32. for (int i = 1; i < g.size(); i++) {
  33. if (a[a.size() - 1] + g[i] > 300000)
  34. break;
  35. a.push_back(a[a.size() - 1] + g[i]);
  36. }
  37. d[0] = 0;
  38. for (int i = 1; i < N; i++) {
  39. d[i] = INF;
  40. for (int j = 0; j < a.size(); j++) {
  41. if (i - a[j] < 0) {
  42. break;
  43. }
  44. d[i] = min(d[i], 1 + d[i - a[j]]);
  45. }
  46. }
  47. int t;
  48. cin >> t;
  49. for (int i = 0; i < t; i++) {
  50. int c;
  51. cin >> c;
  52. cout << d[c] << endl;
  53. }
  54.  
  55.  
  56. return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment