Contest 181 - Four Divisors

Getting a TLE for this:

class Solution {
public:
    int sumFourDivisors(vector<int>& nums) {
        if(nums.empty())
            return 0;
        
        std::vector<pair<int,int>> temp;
        for(auto num : nums)
        {
            temp.push_back(get_divisors(num));
        }
        
        std::pair<int, int> t;
        t = {0, 0};
        int sum = 0;
        for(int i = 0; i < temp.size(); ++i)
        {
            if(temp[i] != t)
                sum += temp[i].second;
        }
        
        return sum == 0 ? 0 : sum;
    }
    
    pair<int, int> get_divisors(int n) 
    { 
        std::unordered_map<int, std::vector<int>> p;
        for (int i=1;i<=n;i++) 
            if (n%i==0) 
                p[n].push_back(i);
        
        int sum = 0;
        if(p[n].size() == 4)
        {
            return {n, std::accumulate(p[n].begin(), p[n].end(), 0)};
        }
        
        return {0,0};
    } 
};

Perhaps its legit but I feel like it should be accepted...

Comments (1)