Mai intai trebuie sa te autentifici.
Cod sursa(job #871755)
Utilizator | Data | 5 februarie 2013 10:30:51 | |
---|---|---|---|
Problema | Cautare binara | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.9 kb |
#include<iostream>
#include<vector>
#include<fstream>
#include<algorithm>
using namespace std;
int caut(int x, vector<int> v, int li, int ls)
{
int mijloc;
while(li<=ls)
{
mijloc=(li+ls)/2;
if(v[mijloc]==x)
return mijloc;
else
if(x<v[mijloc])
ls=mijloc-1;
else
li=mijloc+1;
}
return -1;
}fstream fin("cautbin.in");
fstream fout("cautbin.out");
int main(void)
{
int i, n, cautat, poz;
vector<int>v;
fin>>n;
v.resize(n+1);
for(i=1; i<=n; i++)
{
fin>>v[i];
}
fin>>cautat;
poz=caut(cautat, v, 1, n);
if(poz<0)
fout<<cautat;
else
fout<<cautat<<" "<<poz;
if(binary_search (v.begin(), v.end(), cautat))
fout<<"Am gasit numarul";
else
fout<<"Nu este in vector";
fout.close();
fin.close();
}