Pagini recente » Cod sursa (job #1340910) | Cod sursa (job #2601709) | Cod sursa (job #2398318) | Cod sursa (job #2502794) | Cod sursa (job #1151969)
#include<fstream>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int v[100005],n,q;
int cautbin1(int nr)
{
int bin=1<<16,i=0;
while(bin)
{
if(i+bin<=n && v[i+bin]<=nr)
i+=bin;
bin/=2;
}
if(v[i]==nr)
return i;
return -1;
}
int cautbin2(int nr)
{
int bin=1<<16,i=0;
while(bin)
{
if(i+bin<=n && v[i+bin]<=nr)
i+=bin;
bin/=2;
}
return i;
}
int cautbin3(int nr)
{
nr--;
int bin=1<<16,i=0;
while(bin)
{
if(i+bin<=n && v[i+bin]<=nr)
i+=bin;
bin/=2;
}
return i+1;
}
int main ()
{
int i,p,nr;
in>>n;
for(i=1;i<=n;i++)
in>>v[i];
in>>q;
for(i=1;i<=q;i++)
{
in>>p>>nr;
if(p==0)
out<<cautbin1(nr)<<'\n';
if(p==1)
out<<cautbin2(nr)<<'\n';
if(p==2)
out<<cautbin3(nr)<<'\n';
}
}