Cod sursa(job #177217)
| Utilizator | Data | 12 aprilie 2008 14:10:26 | |
|---|---|---|---|
| Problema | Range minimum query | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.41 kb |
#include<stdio.h>
char v[100000];
int main()
{long n,m,i,x,y,j,min;
FILE*f=fopen("rmq.in","r");
FILE*g=fopen("rmq.out","w");
fscanf(f,"%ld %ld",&n,&m);
for(i=0;i<n;i++)
{fscanf(f,"%ld",&x);
v[i]=x+'0';}
for(i=1;i<=m;i++)
{fscanf(f,"%ld %ld",&x,&y);
min=v[x-1]-'0';
for(j=x+1;j<=y;j++)
if(v[j-1]-'0'<min) min=v[j-1]-'0';
fprintf(g,"%ld\n",min);}
fcloseall();
return 0;
}
