Cod sursa(job #547272)
Utilizator | Data | 6 martie 2011 10:02:16 | |
---|---|---|---|
Problema | Range minimum query | Scor | 20 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.41 kb |
#include<fstream.h>
ifstream f("rmq.in");
ofstream g("rmq.out");
int a[10001][10001],n,m,x,y;
inline int Min(int a,int b)
{ if(a<b) return a;
return b;
}
int main()
{ int i,j;
f>>n>>m;
for(i=1;i<=n;i++) f>>a[i][i];
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++) a[i][j]=Min(a[i][j-1],a[j][j]);
for(i=1;i<=m;i++)
{ f>>x>>y;
g<<a[x][y]<<'\n';
}
f.close(); g.close();
return 0;
}