Pagini recente » Cod sursa (job #379281) | Cod sursa (job #1073377) | Cod sursa (job #2502670) | Cod sursa (job #617119) | Cod sursa (job #650737)
Cod sursa(job #650737)
#include <stdio.h>
#include <stdlib.h>
unsigned int min(unsigned int a,unsigned int b)
{
if(a>b)
return b;
return a;
}
int main()
{
FILE *fin,*fout;
fin=fopen("rmq.in","r");
fout=fopen("rmq.out","w");
unsigned int m,n,i,j,l,x,y,a[1000][1000],v[10000];
fscanf(fin,"%u %u",&n,&m);
for(i=1;i<=n;i++)
fscanf(fin,"%u",&v[i]);
for(i=1;i<n;i++)
a[i][i+1]=min(v[i],v[i+1]);
j=n-2;
while(j<=n)
{
l=j;
for(i=1;i<=n-j+1;i++)
{
a[i][l]=min(a[i][l-1],a[i+1][l]);
l++;
}
j++;
}
for(i=1;i<=m;i++)
{
fscanf(fin,"%u %u",&x,&y);
fprintf(fout,"%u\n",a[x][y]);
}
/*for(i=0;i<=n;i++)
{
free(a[i]);
free(v[i]);
}
free(a);*/
return 0;
}