Cod sursa(job #1932950)

Utilizator deleted_2dbcc643895c1cb0DELETED deleted_2dbcc643895c1cb0 Data 20 martie 2017 11:25:52
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int cautbin1 (int x,int n,int a[])
{
    int ls = 1,ld=n;
    int m;
    while (ls <=ld)
    {
        m = ls + (ld-ls)/2;
        if (a[m] <=x) ls=m+1;
        else ld = m-1;

    }
    if (a[m]<=x) return m;
    return m-1;
}
int cautbin2 (int x,int n,int a[])
{
    return cautbin1(x,n,a);
}
int cautbin3 (int x,int n,int a[])
{
    return cautbin1(x-1,n,a)+1;
}
int main()
{

    int n,x;
    f>>n;
    int a[100005];
    for (int i=1; i<=n; i++) f >> a[i];
    int intr,tip;
    f >> intr;
    while (intr-- >0)
    {
        f >> tip >> x;
        if (tip == 0) g << cautbin1(x,n,a) << '\n';
        if (tip == 1) g << cautbin2(x,n,a) << '\n';
        if (tip == 2) g << cautbin3(x,n,a) << '\n';

    }
    f.close();
    g.close();
    return 0;

}