Cod sursa(job #2073768)

Utilizator Consti.001FMI Dranca Constantin Consti.001 Data 23 noiembrie 2017 18:05:17
Problema A+B Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<fstream>
#include<iostream>
using namespace std;
ifstream f("data.in");
ofstream g("data.out");

int determina_varf(int st, int dr, int v[])
{
    if(dr-st==1)
    {
        if(v[st]>v[dr])return v[st];
        else
            return v[dr];
    }
    else
    {
        int mid=(st+dr)/2;
        if(v[mid]>v[mid-1]&&v[mid]>v[mid+1]) return v[mid];
        else
            if(v[mid]<v[mid-1]) return determina_varf(st,mid,v);
            else
                if(v[mid]<v[mid+1]) return determina_varf(mid,dr,v);
    }
    return -1;
}

int main()
{
    int n;
    f>>n;
    int v[n];

    for(int i=0;i<n;++i)
        f>>v[i];
    cout<<determina_varf(0,n-1,v);
}