サフィックスになってるものを削除すればいい。
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;
}
};