Pagini recente » Cod sursa (job #3210557) | Cod sursa (job #2879462) | Cod sursa (job #2217450) | Cod sursa (job #2405292) | Cod sursa (job #194609)
Cod sursa(job #194609)
#include<fstream>
using namespace std;
int a[100009],n;
ofstream g("cautbin.out");
int binser(int x,int &lop){
int i, pas;
for(pas=1;pas<=n;pas<<=1);
for(i=0;pas;pas>>=1)
if(i+pas<=n&&a[i+pas]<=x)
i+=pas;
lop=i;
if(a[i]!=x) return -1;
else return i;
}
void raspunde(int t, int x){
int k;
int r=binser(x,k);
switch(t){
case 0: g<<r+1<<'\n';break;
case 1: g<<k+1<<'\n';break;
case 2:g<<k+2<<'\n';break;
}
}
int main(){
int m, t, x,i;
ifstream f("cautbin.in");
f>>n;
for(i=0;i<n;i++)
f>>a[i];
f>>m;
for(i=0;i<m;i++){
f>>t;
f>>x;
raspunde(t,x);
}
return 0;
}