Pagini recente » Cod sursa (job #825685) | Cod sursa (job #1016999) | Cod sursa (job #3163677) | Cod sursa (job #2424855) | Cod sursa (job #2386867)
#include <bits/stdc++.h>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int cerinta1(int vect[], int n, int x)
{
int st = 0;
int dr = n-1;
int mid, rez;
while(st<=dr){
mid = (st+dr)/2;
if(x<vect[mid]){
dr = mid-1;
}
if(x>=vect[mid]){
st = mid+1;
}
}
if(vect[st-1]==x) return st;
else return -1;
}
int cerinta2(int vect[], int n, int x)
{
int st = 0;
int dr = n-1;
int mid, rez;
while(st<=dr){
mid = (st+dr)/2;
if(x<vect[mid]){
dr = mid-1;
}
if(x>=vect[mid]){
st = mid+1;
}
}
return st;
}
int cerinta3(int vect[], int n, int x)
{
int st = 0;
int dr = n-1;
int mid, rez;
while(st<=dr){
mid = (st+dr)/2;
if(x<=vect[mid]){
dr = mid-1;
}
if(x>vect[mid]){
st = mid+1;
}
}
return st+1;
}
int main()
{
int n; f >> n;
int vect[n];
for(int i = 0; i<n; i++)
f >> vect[i];
int intrebari; f >> intrebari;
for(int i = 0; i<intrebari; i++){
int q, x; f >> q >> x;
if(q==0) g << cerinta1(vect, n, x) << endl;
if(q==1) g << cerinta2(vect, n, x) << endl;
if(q==2) g << cerinta3(vect, n, x) << endl;
}
}