Pagini recente » Cod sursa (job #2561981) | Cod sursa (job #2877714) | Cod sursa (job #1801252) | Cod sursa (job #587279) | Cod sursa (job #697693)
Cod sursa(job #697693)
#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(){
FILE *f=fopen("rmq.in","r");
fscanf(f,"%d %d\n",&n,&m);
int i,x,y;
for(i=1;i<=n;i++){
fscanf(f,"%d\n",&x);
insert(r,x);
}
for(i=1;i<=m;i++){
fscanf(f,"%d %d\n",&x,&y);
printf("%d\n",find(r,x,y));
}
fclose(f);
}
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;
}