문제

링크

풀이

#include <iostream>
#include <map>
#include <tuple>
using namespace std;
 
map<int, tuple<long long, long long, long long>> m = {
  {0, {0, 0, 0}},
  {1, {0, 0, 1}},
  {2, {0, 1, 1}},
  {3, {1, 1, 1}},
  {6, {-1, -1, 2}},
  {7, {0, -1, 2}},
  {8, {0, 0, 2}},
  {9, {0, 1, 2}},
  {10, {1, 1, 2}},
  {11, {-2, -2, 3}},
  {12, {7, 10, -11}},
  {15, {-1, 2, 2}},
  {16, {-511, -1609, 1626}},
  {17, {1, 2, 2}},
  {18, {-1, -2, 3}},
  {19, {0, -2, 3}},
  {20, {1, -2, 3}},
  {21, {-11, -14, 16}},
  {24, {-2901096694, -15550555555, 15584139827}},
  {25, {-1, -1, 3}},
  {26, {0, -1, 3}},
  {27, {0, 0, 3}},
  {28, {0, 1, 3}},
  {29, {1, 1, 3}},
  {30, {-283059965, -2218888517, 2220422932}},
  {33, {8866128975287528, -8778405442862239, -2736111468807040}},
  {34, {-1, 2, 3}},
  {35, {0, 2, 3}},
  {36, {1, 2, 3}},
  {37, {0, -3, 4}},
  {38, {1, -3, 4}},
  {39, {117367, 134476, -159380}},
  {42, {-80538738812075974, 80435758145817515, 12602123297335631}},
  {43, {2, 2, 3}},
  {44, {-5, -7, 8}},
  {45, {2, -3, 4}},
  {46, {-2, 3, 3}},
  {47, {6, 7, -8}},
  {48, {-23, -26, 31}}
};
 
void solve(void) {
  int n; cin >> n;
 
  if (m.find(n) != m.end()) {
    auto [x, y, z] = m[n];
    cout << x << " " << y << " " << z;
  } else {
    cout << "0";
  }
}
 
int main(void) {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
 
  solve();
  return 0;
}