In this HackerEarth Square Transaction problem solution, Square Inc. processes thousands of transactions daily amounting to millions of dollars. They also have a daily target that they must achieve. Given a list of transactions done by Square Inc. and a daily target your task is to determine at which transaction does Square achieves the same.


HackerEarth Square Transaction problem solution


HackerEarth Square Transaction problem solution.

#include <bits/stdc++.h>
using namespace std;

int binary_search(int a[],int x,int lo,int hi){
    if(x>a[hi]) return -1;
    int trans_no=0;
    while(hi>=lo){
        int mid=lo+(hi-lo)/2;
        if(a[mid]>=x) {
            trans_no=mid;  hi=mid-1;
        }
        else lo=mid+1;
    }
    return trans_no;
}

int main()
{
    int n; cin>>n; int a[n+11];
    a[0]=0;
    for(int i=1;i<=n;i++) {
        cin>>a[i];
        a[i]+=a[i-1];
    }
    int q; cin>>q;
    while(q--){
        int x; cin>>x;
        cout<<binary_search(a,x,1,n)<<"\n";
    }
    //cout << "Hello World!" << endl;
    return 0;
}