サフィックスになってるものを削除すればいい。
class TheLotteryBothDivs { public: double find(vector <string> s) { for (int i = 0; i < (int)s.size(); ++i) { reverse(s[i].begin(), s[i].end()); } for (int i = 0; i < (int)s.size(); ++i) { for (int j = 0; j < (int)s.size(); ++j) { if (i == j) continue; if (s[i].size() >= s[j].size()) { if (s[i].find(s[j]) == 0) { s.erase(s.begin() + i--); break; } } } } double sum = 0; for (int i = 0; i < (int)s.size(); ++i) { sum += pow(0.1, (int)s[i].size()); } printf("%.10lf\n", sum); return sum; } };