Cod sursa(job #3132448)
Utilizator | Data | 22 mai 2023 20:01:44 | |
---|---|---|---|
Problema | Cautare binara | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 1.01 kb |
#include <iostream>
using namespace std;
int main()
{
int n, v[1001], m;
cin >> n;
for(int i = 1; i <= n; i++)
{
cin >> v[i];
}
cin >> m;
for(int i = 0; i < m; i++)
{
int x;
if(i == 0)
{
cin >> x;
int st = 1, dr = n, poz = -1;
while(st <= dr)
{
int mid = (st + dr) / 2;
if(v[mid] == x)
{
poz = mid;
break;
}
if(v[mid] < x)
{
st = mid + 1;
}
else
{
dr = mid - 1;
}
}
if(st <= dr)
{
while(v[poz] == v[poz + 1]){
poz++;
}
cout << poz << "\n";
}
else cout << -1 << "\n";
}
}
return 0;
}