Pagini recente » Cod sursa (job #1711924) | Cod sursa (job #1133086) | Cod sursa (job #2046067) | Cod sursa (job #325141) | Cod sursa (job #339137)
Cod sursa(job #339137)
#include <stdio.h>
FILE*f=fopen("cautbin.in","r");
FILE*g=fopen("cautbin.out","w");
int n,sir[100001],m,tip,cif,mid,out,s,d,i;
void cazu0(){
out = -1;
s=1;
d=n;
while(s<=d){
mid = s+(d-s)/2;
if(sir[mid]>cif)
d=mid-1;
else if(sir[mid]<cif)
s=mid+1;
else{
s=mid+1;
out=mid;
}
}
}
void cazu1(){
s=1;
d=n;
while(s<=d){
mid = s+(d-s)/2;
if(sir[mid]>cif)
d=mid-1;
else{
out=mid;
s=mid+1;
}
}
}
void cazu2(){
out = -1;
s=1;
d=n;
while(s<=d){
mid = s+(d-s)/2;
if(sir[mid]>=cif){
out=mid;
d=mid-1;}
else s=mid+1;
}
}
void citire(){
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
fscanf(f,"%d",&sir[i]);
fscanf(f,"%d",&m);
}
int main(){
citire();
for(i=1;i<=m;i++){
fscanf(f,"%d %d",&tip,&cif);
if(tip==0){
cazu0();
fprintf(g,"%d",out);}
else if(tip==1){
cazu1();
fprintf(g,"%d",out);}
else{
cazu2();
fprintf(g,"%d",out);}
}
fclose(f);
fclose(g);
return 0;
}