Pagini recente » Diferente pentru dot-com/2012/runda-2 intre reviziile 8 si 7 | Cod sursa (job #739806) | Diferente pentru template/algoritmiada-2009/header intre reviziile 25 si 19 | Diferente pentru problema/patrate4 intre reviziile 2 si 8 | Cod sursa (job #588823)
Cod sursa(job #588823)
#include<stdio.h>
using namespace std;
FILE *f,*g;
long long c[100001][100001],i,j,n,m,a[100001],x,y;
int main()
{
f=fopen("rmq.in","r");
g=fopen("rmq.out","w");
fscanf(f,"%ld",&n);
fscanf(f,"%ld",&m);
for(i=1;i<=n;i++)
fscanf(f,"%ld",&a[i]);
/*for(i=1;i<=n;i++)
fscanf(f,"%ld",&b[i]);*/
for(i=1;i<=n;i++)
c[i][i]=a[i];
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
if(c[i][j]==0)
{
if(c[i][j-1]>a[j]) c[i][j]=a[j];
else c[i][j]=c[i][j-1];
}
for(i=1;i<=m;i++)
{
fscanf(f,"%ld",&x);
fscanf(f,"%ld",&y);
fprintf(g,"%ld",c[x][y]);
fprintf(g,"\n");
}
fclose(f);
fclose(g);
return 0;
}