1class Solution {2public:3vector<int> ans;45bool getFibo(string &s, int i, long a, long b, int n) {6if (i == s.length()) return n > 2;78long num = 0;9for (int x = i; x < s.length(); x++) {10num = num * 10 + s[x] - '0';11if (num > INT_MAX) break;1213bool chk = false;14ans.push_back(num);15if (n < 2)16chk = getFibo(s, x + 1, b, num, n + 1);17else if (a + b == num)18chk = getFibo(s, x + 1, b, num, n + 1);19if (chk) return true;20ans.pop_back();2122if (num == 0) break;23}24return false;25}2627vector<int> splitIntoFibonacci(string S) {28ans.clear();29getFibo(S, 0, 0, 0, 0);30return ans;31}32};