Pagini recente » Cod sursa (job #81699) | Cod sursa (job #995235) | Cod sursa (job #578416) | Cod sursa (job #720106) | Cod sursa (job #1315688)
#include <fstream>
#include <math.h>
using namespace std;
ifstream f("date.in");
ofstream g("date.out");
int a[10000], i, j, n, m, x, y, rad, b[10000], st, dr, mini;
int main()
{ f>>n>>m;
for (i=1; i<=n; ++i) f>>a[i];
rad=int(sqrt(n));
b[0]=a[1];
for (i=2; i<=n; ++i)
{ j=i;
while (i/rad==(i-1)/rad && i<=n)
{ b[i/rad]=min(b[i-1], a[i]);
++i;
}
b[i]=a[i];
}
for (i=1; i<=m; ++i)
{ f>>x>>y;
st=x/rad;
dr=y/rad;
if (x==rad*st) mini=b[st];
else
{ mini=a[x];
for (j=x+1; j<rad*(st+1) && j<=y; ++j) mini=min(a[j], mini);
}
for (j=st+1; j<=dr-1; ++j) mini=min(mini, b[j]);
for (j=dr*rad; j<=y; ++j) mini=min(mini, a[j]);
g<<mini<<'\n';
}
return 0;
}