My solution to a HackerRank problem works but times out when very large amounts of data are used, such as the following: https://hr-testcases-us-east-1.s3.amazonaws.com/9403/input11.txt?AWSAccessKeyId=AKIAJ4WZFDFQTZRGO3QA&Expires=1565703339&Signature=JcuoWT7wKxpU3GWudO4wLNWK6Dg%3D&response-content-type=text%2Fplain
I'm quite aware that the code is far from ideal, and will probably make experienced software developers cringe... so I'm hoping it can be improved.
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
    /* Enter your code here. Read input from STDIN. Print output to STDOUT */
    int N;
    cin >> N;
    vector<int> v;
    vector<string> s;
    for (int i = 0; i < N; i++) {
        int a;
        cin >> a;
        v.push_back(a);
    } 
    int Q;
    cin >> Q;
    for (int i = 0; i < Q; i++) {
        int a;
        int b = 0;
        cin >> a;
        for (int j = 0; j < v.size(); j++) {
            if(v[j]==a) {
                s.push_back("Yes " + to_string(j+1));
                b++;
                j=v.size();
            }
        }
        if (b==0) {
            vector<int>::iterator low;
            low = std::lower_bound(v.begin(), v.end(), a);
            int d = low-v.begin();
            d++;
            s.push_back("No " + to_string(d));
        }
    }
    for (int i = 0; i < s.size(); i++) {
        cout << s[i] <<"\n";
        }
    return 0;
}
The problem statement is:
 Ideally, I'd rather not have a completely new solution, but rather get some help making this one better.
 Ideally, I'd rather not have a completely new solution, but rather get some help making this one better.
 
    