Pagini recente » Cod sursa (job #164885) | Cod sursa (job #2103331) | Cod sursa (job #1030530) | Cod sursa (job #1287064) | Cod sursa (job #697718)
Cod sursa(job #697718)
#include <stdio.h>
struct nod{
int nr;
nod *st,*dr;
}*r;
int n,m;
void insert(nod *&r,int nr){
if(r==0){
r=new nod;
r->nr=nr;
r->st=0;
r->dr=0;
}
else
if(nr<r->nr)
insert(r->st,nr);
else
if(nr>r->nr)
insert(r->dr,nr);
}
int find(nod *r,int x,int y){
if(r){
if(x<=r->nr){
if(r->st)
return find(r->st,x,y);
return r->nr;
}
return find(r->dr,x,y);
}
}
void read(){
freopen("rmq.in","r",stdin);
scanf("%d %d\n",&n,&m);
int i,x,y;
for(i=1;i<=n;i++){
scanf("%d\n",&x);
insert(r,x);
}
for(i=1;i<=m;i++){
scanf("%d %d\n",&x,&y);
printf("%d\n",find(r,x,y));
}
fclose(stdin);
}
void write(nod *r){
if(r){
write(r->st);
printf("%d ",r->nr);
write(r->dr);
}
}
int main(){
freopen("rmq.out","w",stdout);
read();
fclose(stdout);
return 0;
}