Pagini recente » Cod sursa (job #2668891) | Cod sursa (job #3183923) | Cod sursa (job #3175687) | Cod sursa (job #1854021) | Cod sursa (job #260657)
Cod sursa(job #260657)
#include <stdio.h>
#include <stdlib.h>
typedef struct operatie{
unsigned int op;
unsigned long x;
} interogare;
#define DIMMAX 100000
int main(){
unsigned long v[DIMMAX],n,m,i,j;
interogare o[DIMMAX];
FILE *f=fopen("cautbin.in","rt"),*g=fopen("cautbin.out","wt");
fscanf(f,"%ul",&n);
for(i=0;i<n;i++) fscanf(f,"%ul",&v[i]);
fscanf(f,"%ul",&m);
for(i=0;i<m;i++) fscanf(f,"%u %ul",&o[i].op,&o[i].x);
for(i=0;i<m;i++)
switch(o[i].op){
case 0:
j=0;
while(v[j]<o[i].x) j++;
if(v[j]!=o[i].x) fprintf(g,"-1\n");
else{
while(v[j]==o[i].x) j++;
fprintf(g,"%u\n",j-1);
}
break;
case 1:
j=0;
while(v[j]<o[i].x) j++;
if(v[j]==o[i].x) fprintf(g,"%ul\n",j);
else fprintf(g,"%ul\n",j-1);
break;
case 2:
j=n-1;
while(v[j]>o[i].x) j--;
if(v[j]==o[i].x) fprintf(g,"%ul\n",j);
else fprintf(g,"%ul\n",j+1);
}
fclose(f);
fclose(g);
return 0;
}