Pagini recente » Cod sursa (job #2598283) | Cod sursa (job #2657594) | Cod sursa (job #1226388) | Cod sursa (job #2662859) | Cod sursa (job #3031997)
#include<fstream>
#include<math.h>
using namespace std;
long long int v[100019]={};
long long int cb0(long long int n, long long int v[],long long int t, long long int x){
long long int r=0;
for(long long int i=t;i>0;i/=2){
if(v[r+i]<=x && r+i<=n){
r+=i;
}
}
if(v[r]==x){
return r;
}else{
return 0;
}
}
long long int cb1(long long int n, long long int v[],long long int t, long long int x){
long long int r=0;
for(long long int i=t;i>0;i/=2){
if(v[r+i]<=x && (r+i)<=n){
r+=i;
}
}
return r;
}
long long int cb2(long long int n, long long int v[],long long int t, long long int x){
long long int r=n;
for(long long int i=t;i>0;i/=2){
if(v[r-i]>=x && (r-i)>0){
r-=i;
}
}
return r;
}
int main(){
ifstream in("cautbin.in");
ofstream out("cautbin.out");
long long int n,m,x,y,t=1;
in>>n;
while(t*2<=n){
t*=2;
}
for(long long int i=1;i<=n;i++){
in>>v[i];
}
in>>m;
for(long long int i=1;i<=m;i++){
in>>x>>y;
if(x==0){
out<<cb0(n,v,t,y)<<'\n';
}else{
if(x==1){
out<<cb1(n,v,t,y)<<'\n';
}else{
out<<cb2(n,v,t,y)<<'\n';
}
}
}
}