#include #include #include #include using namespace std; vector> v; int answer(string nStr) { // cout << "target: " << nStr << "(len=" << nStr.size() << ")->"; int sum = 0; for(int i = 0; i < v.size(); ++i) { // cout << "[" << i << "]:"; int a = (nStr[v[i].first]-'0'); int b = (nStr[v[i].second]-'0'); if(a >= 0 && b >= 0) { sum = a + b; // cout << nStr[v[i].first]-'0'<<"("<> nStr; // 0からnStr.size()までの桁同士の組の生成 //vector> v; for(int i = 0; i < nStr.size(); ++i) { for(int j = i+1; j < nStr.size(); ++j) { pair p = {i, j}; v.push_back(p); } } int ans = 0; int i = stoi(nStr); for(i; i > 10; i--) { // 3の倍数以外は評価しない if(i % 3 == 0) { ans += answer(to_string(i)); } else continue; } cout << ans << endl; return 0; }