Pagini recente » Cod sursa (job #573820) | Cod sursa (job #287536) | Rating Bene Ionut-Matei (BeneIonut2208) | Cod sursa (job #620714) | Cod sursa (job #3168043)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream f ("cautbin.in");
ofstream g ("cautbin.out");
int n,t[100000],m,a,x,bal,jobb,z;
f>>n;
for (int i=1;i<=n;i++)f>>t[i];
f>>m;
for (int i=1;i<=m;i++){
f>>a>>x;
if (a==2) { bal=1; jobb=n;
while (jobb!=bal){
z=(bal+jobb)/2;
if (t[z]>=x) jobb=z;
else bal=z;
if (t[bal]<x&&bal==z) bal++;
}
g<<jobb<<" ";
}
if (a==0) {
bal=1; jobb=n;
while (jobb!=bal){
z=(bal+jobb)/2+1;
if (t[z]>x) jobb=z-1;
else bal=z;
}
if (x==t[jobb]) g<<jobb<<" ";
else g<<-1<<" ";
}
if (a==1) {
bal=1; jobb=n;
while (jobb!=bal){
z=(bal+jobb)/2+1;
if (t[z]>x) jobb=z;
else bal=z;
if (t[jobb]>x&&jobb==z) jobb--;
}
g<<jobb<<" ";
}
}
return 0;
}