Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_DEPRECATE
- #include <iostream>
- #include <vector>
- #include <string>
- #include <map>
- #include <set>
- #include <algorithm>
- #define ull unsigned long long
- #define ll long long
- using namespace std;
- const int N = 300001;
- const ll INF = 1000ll * 1000 * 1000 * 1000 * 1000 * 1000ll;
- //ll a[N];
- ll d[N];
- int main() {
- //freopen("input.txt", "r", stdin);
- //freopen("output.txt", "w", stdout);
- vector<ll> g;
- g.push_back(1);
- while (g[g.size() - 1] + (g.size() + 1) <= 300000) {
- g.push_back(g[g.size() - 1] + (g.size() + 1));
- }
- vector<ll> a;
- a.push_back(g[0]);
- for (int i = 1; i < g.size(); i++) {
- if (a[a.size() - 1] + g[i] > 300000)
- break;
- a.push_back(a[a.size() - 1] + g[i]);
- }
- d[0] = 0;
- for (int i = 1; i < N; i++) {
- d[i] = INF;
- for (int j = 0; j < a.size(); j++) {
- if (i - a[j] < 0) {
- break;
- }
- d[i] = min(d[i], 1 + d[i - a[j]]);
- }
- }
- int t;
- cin >> t;
- for (int i = 0; i < t; i++) {
- int c;
- cin >> c;
- cout << d[c] << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment