C++ || Easy || NO DP
\n\n# Code\n\nclass Solution {\npublic:\n    map<string,int> m;\n    bool cal(string &str,int idx,int cnt)\n    {\n        if(idx==str.size())\n            retu
\n\n# Code\n```\nclass Solution {\npublic:\n    map<string,int> m;\n    bool cal(string &str,int idx,int cnt)\n    {\n        if(idx==str.size())\n            return cnt>1;   // check atleat two string are concate\n        string tmp="";\n        for(int i=idx;i<str.size();i++)\n        {\n            tmp+=str[i];\n            if(m.find(tmp)!=m.end())\n            {\n                // if string found then check with next index\n                bool flag=cal(str,i+1,cnt+1);\n                if(flag)\n                    return true;\n            }\n        }\n        return false;\n    }\n    vector<string> findAllConcatenatedWordsInADict(vector<string>& words) {\n        for(auto x:words)\n            m[x]++;\n        vector<string> ans;\n        for(auto x:words)\n        {\n            bool flag=cal(x,0,0);\n            // if given string satisfy the condition then add it to our answer\n            if(flag)\n                ans.push_back(x);\n        }\n        return ans;\n    }\n};\n```
['String', 'C++']