Pagini recente » Rating Darian Serban (darianserban999) | Cod sursa (job #2984513) | Cod sursa (job #658128)
Cod sursa(job #658128)
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#include<fstream>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int cautbin0(int a[100],int st,int dr,int val)
{long m;
while(st<=dr)
{m=(st+dr)/2;
if(a[m]<=val) st=m+1;
else dr=m-1;
}
m=(st+dr)/2;
if(a[m]>val) m--;
if (a[m]==val) return m;
return -1;}
int cautbin1(int a[100],int st,int dr,int val)
{int n=dr;
long m;
while(st<dr)
{m=(st+dr)/2;
if(a[m]<=val) st=m+1;
else st=m;
}
m=(st+dr)/2;
if (a[m]>val) --m;
return m;}
int cautbin2(int a[100],int st,int dr,int val)
{long m;
while(st<dr)
{m=(st+dr)/2;
if(a[m]<val)st=m+1;
else dr=m;
}
m= (st+dr)/2;
if(a[m]<val)++m;
return m;}
int main()
{int n,i,a[100],val,m,tip;
in>>n;
for(i=1;i<=n;i++)
in>>a[i];
in>>m;
for(i=1;i<=m;i++)
{in>>tip>>val;
if(tip==0)out<<cautbin0(a,1,n,val);
if(tip==1)out<<cautbin1(a,1,n,val);
if(tip==2)out<<cautbin2(a,1,n,val);
}
return 0;}