Cod sursa(job #650256)
Utilizator | Data | 17 decembrie 2011 18:11:11 | |
---|---|---|---|
Problema | Range minimum query | Scor | 0 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.57 kb |
#include <stdio.h>
int main(){
int a[11][11],i,j,k,st,sf,n,m;
FILE* in=fopen("rmq.in","r");
FILE* out=fopen("rmq.out","w");
fscanf(in,"%d",&n);
fscanf(in,"%d",&m);
a[1][0]=0;
for(i=1;i<=n;i++){
fscanf(in,"%d",&a[1][i]);
for(j=1;j<=i;j++){
if(a[j][i-j+1]<a[j][i-j]) a[j+1][i-j]=a[j][i-j+1];
else a[j+1][i-j]=a[j][i-j];
}
}
for(k=1;k<=m;k++){
fscanf(in,"%d",&st);
fscanf(in,"%d",&sf);
fprintf(out,"%d\n",a[sf-st+1][st]);
}
fclose(in);
fclose(out);
return 0;
}