Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <assert.h>
- #include <iostream>
- #include <vector>
- using namespace std;
- int main() {
- int all_cards_count;
- cin >> all_cards_count;
- int64_t sum = 0;
- int64_t squares_sum = 0;
- int64_t cubes_sum = 0;
- for (int64_t i = 1; i <= all_cards_count; ++i) {
- sum += i;
- squares_sum += i * i;
- cubes_sum += i * i * i;
- }
- int64_t sum_hh, squares_hh, cubes_hh; // _hh - he has
- cin >> sum_hh >> squares_hh >> cubes_hh;
- int64_t x, y, z;
- //x + y + z = sum - sum_hh;
- for (x = 1; x <= (sum - sum_hh); x++) {
- for (y = x + 1; y <= (sum - sum_hh - x) / 2; y++) {
- z = sum - sum_hh - x - y;
- if (z <= y || 50'000 < z) continue;
- if (squares_hh + x * x + y * y + z * z == squares_sum &&
- cubes_hh + x * x * x + y * y * y + z * z * z == cubes_sum) {
- cout << x << ' ' << y << ' ' << z;
- return 0;
- }
- }
- }
- assert(false);
- }
- /*
- x + y + z = 10;
- x^2 + y^2 + z^2 = 30
- x^3 + y^3 + z^3 = 100;
- (x + y + z) * (x + y + z) =
- x^2 + xy + xz + xy + y^2 + yz + xz + yz + z^2 =
- x^2 + y^2 + z^2 + 2xy + 2xz + 2yz == 100
- 2xy + 2xz + 2yz = 70
- xy + xz + yz = 35
- (x^2 + xy + xz + xy + y^2 + yz + xz + yz + z^2)(x + y + z) =
- x^3 + x^2y + x^2z + x^2y + xy^2 + xyz + x^2z + xyz + xz^2 + x^2y + xy^2 +xyz +
- xy^2 +y^3 + y^2z+ yzx + y^2z + yz^2 + x^2z + xyz + xz^2 +xyz +y^2z+yz^2 +xz^2 + yz^2 + z^3=
- xyz + xyz + xyz + yzx + xyz + xyz +=
- x^3 + y^3 + z^3 + 3x^2y + 3x^2z + 3y^2x + 3y^2z + 3z^2x + 3z^2y + 6xyz = 1000
- 3x^2y + 3x^2z + 3y^2x + 3y^2z + 3z^2x + 3z^2y + 6xyz = 900
- x*(xy) + x(xz) + y*(xy) +z*(yz) + z(xz) +z(zy) + 2xyz = 300
- xy(x + y) + xz(x + z) + zy(z + y) + 2xyz = 300
- (x^2 + y^2 + z^2)(x + y + z) = 300
- x^3 + x^2*y + x^2*z + y^2 * x + y^3 + y^2 * z + z^2 * x + z^2 * y + z^3 = 300
- x^2y + x^2z + y^2x + y^2z + z^2x + z^2y + 2xyz = 300
- x^2y + x^2z + y^2x + y^2z + z^2x + z^2y = 200
- 2xyz = 100;
- xyz = 50;
- 1 + x + y + z = 10
- 1 + x^2 + y^2 + z^2 = 30
- 1 + x^3 + y^3 + z^3 = 100
- (1 + x + y + z) * (1 + x + y + z) = 100
- 1 + x + y + z + x + x^2 + xy + xz + y + xy + y^2 + yz + z + xz + zy + z^2 = 100
- x^2 + y^2 + z^2 + 1 = 30
- 2x + 2y + 2z + 2xy + 2xz + 2yz = 70
- x + y + z + xy + xz + yz = 35
- x + y + z = 9
- xy + xz + yz = 26
- 1 * 1 = 10 * 10
- 1 * 1 - 2 - (2 * 1 - 1) == (10 * 10 - 30) / 2 - (1 - 1);
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement