[2017-01-04] Challenge #298 [Intermediate] Too many or too few Parentheses

C++, feedback welcome since I most likely fucked this up:

#include <string>
#include <vector>
#include <iostream>

std::string::size_type parens_check(const std::string & str)
{
    int open_count = 0;
    int close_count = 0;
    std::vector<int> opens;
    std::vector<int> closes;
    for (std::string::size_type i = 0; i < str.size(); ++i)
    {
        if (str[i] == '(')
        {
            open_count++;
            opens.push_back(i);
        }
        else if (str[i] == ')')
        {
            close_count++;
            closes.push_back(i);
        }
    }
    if (open_count > close_count)
    {
        if (closes.size() == 0)
            return opens[0];
        else
            return opens[opens.size() - closes.size()];
    }
    else if (close_count > open_count)
    {
        return closes[opens.size()];
    }
    else
        return str.length();
}

int main()
{
    std::string s;
    std::cin >> s;
    int n = parens_check(s);
    for (int i = 0; i < s.size(); ++i)
    {
        if (i == n)
            std::cout << "**" << s[i];
        else
            std::cout << s[i];
    }
    std::cout << std::endl;

}
/r/dailyprogrammer Thread