[ create a new paste ] login | about

Link: http://codepad.org/AaG5ihpJ    [ raw code | output | fork ]

nilukush - C++, pasted on May 1:
#include <iostream>
#include <vector>

namespace
{
    typedef std::vector<int> array_int;
}

int find_turning_number(const array_int& set)
{
    if(set.empty()) return -1;
    int l(0), r(set.size() - 1), m(-1);
    for(; (1 + l) != r ;)
    {
        m = l + ((r - l) / 2);
        if(set[m] > set[r]) r = m;
        else if(set[m] < set[r]) l = m;
    }

    return r;
}

int main()
{
    array_int set;
    set.push_back(1);
    set.push_back(2);
    set.push_back(3);
    set.push_back(4);
    set.push_back(5);
    set.push_back(10);
    set.push_back(9);
    set.push_back(8);
    set.push_back(7);
    set.push_back(6);
    std::cout << find_turning_number(set);
    return 0;
}


Output:
1
5


Create a new paste based on this one


Comments: