Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define mp make_pair
- #define pb push_back
- #define ll long long
- #define pf push_front
- #define double long double
- const ll base = 1e9;
- const double EPS = 0.000001;
- signed main()
- {
- ios_base::sync_with_stdio(false);
- ll n, a, b, c, aa, bb, cc, x1, x2, y1, y2, z1, z2, sqr;
- cin >> n >> a >> b >> c;
- if (n < a+b+c) {
- cout << "0 0 0";
- return 0;
- }
- aa = 1;
- bb = 1;
- cc = 1;
- double tmp = 1.0 / 3.0, ff1 = 1.0, ss1 = 1.0, tt1 = 1.0;
- sqr = (long long)(pow(n, tmp));
- vector<ll> v(4), ans(4), tt, last, ttt, answ;
- last.pb(1);
- v[1] = a;
- v[2] = b;
- v[3] = c;
- ans[1] = 1;
- ans[2] = 1;
- ans[3] = 1;
- for (ll i = 1; i <= 3; ++i) {
- for (ll j = 1; j <= 3; ++j) {
- if (i == j)
- continue;
- for (ll q = 1; q <= 3; ++q) {
- if (i == q || j == q)
- continue;
- a = v[i];
- b = v[j];
- c = v[q];
- x1 = (n / (3*a));
- for (ll z = x1 - sqr - 1; z <= x1 + sqr + 1; ++z) {
- y1 = (n - a*z) / (2*b);
- //cout << z << " " << y1 << "\n";
- for (ll zz = y1 - sqr - 1; zz <= y1 + sqr + 1; ++zz) {
- z1 = (n - a*z - b*zz) / c;
- if (z1*c > n || zz*b > n || z*a > n || z1 >= n || zz >= n || z >= n)
- continue;
- if (z*a + zz*b + z1*c > n)
- continue;
- double ff = z, ss = zz, tt = z1;
- //if (ff*ss*tt - ff1*ss1*tt1 > EPS) {
- if ((double)z * (double)zz * (double)z1 - (double)aa * (double)bb * (double)cc > EPS) {
- aa = z;
- bb = zz;
- cc = z1;
- ff1 = ff;
- ss1 = ss;
- tt1 = tt;
- ans[i] = z;
- ans[j] = zz;
- ans[q] = z1;
- }
- }
- }
- //cout << "\n";
- }
- }
- }
- cout << ans[1]*v[1] << " " << ans[2]*v[2] << " " << ans[3]*v[3];
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement