Pagini recente » Statistici Stefan-Vlad Ailincai (stefanailincai) | Cod sursa (job #2617967)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int optFirst(int v[],int n,int x)
{
int i=0,p=(1<<16);
while(p)
{
if(i+p<=n && v[i+p]<=x)
{
i+=p;
}
p/=2;
}
if(v[i]==x)
{
return i;
}
return -1;
}
int optSecond(int v[],int n,int x)
{
int i=0,p=(1<<16);
while(p)
{
if(i+p<=n && v[i+p]<=x)
{
i+=p;
}
p/=2;
}
return i;
}
int optThird(int v[],int n,int x)
{
int i=0, p=(1<<16);
while(p)
{
if(i+p<=n && v[i+p]<x)
{
i+=p;
}
p/=2;
}
return i+1;
}
int main()
{
int v[100001],n,i,m,opt,c;
f>>n;
for(i=1; i<=n; i++)
{
f>>v[i];
}
f>>m;
for(i=0; i<m; i++)
{
f>>opt>>c;
if(opt==0)
{
g<<optFirst(v,n,c);
}
if(opt==1)
{
g<<optSecond(v,n,c);
}
if(opt==2)
{
g<<optThird(v,n,c);
}
g<<"\n";
}
return 0;
}