Pagini recente » Cod sursa (job #2294885) | Cod sursa (job #2445932) | Cod sursa (job #1798946) | Cod sursa (job #1216945) | Cod sursa (job #1792771)
#include <iostream>
#include<fstream>
#include<math.h>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int n,q,p,k,r[20][250001],p2;
void do_RMQ()
{
int m,i,j,lg[2*n+1],newy,newx;
lg[1] = 0; ///precalc log2(x)
for (int i = 2;i <= n;i++)
lg[i]=lg[i/2]+1;
m = lg[n] + 1;
for(int i=1; i<m; i++)
{
for(int j=1; j<=n; j++)
{
newy=r[i-1][j];
newx=(i>1)?i-2:i-1;
r[i][j]=r[newx][newy];
// cout<<r[i][j]<<" ";
}
// cout<<"\n";
}
}
int main()
{
int str;
f>>n>>q;
for(int i=1; i<=n; i++)
f>>r[0][i];
do_RMQ();
for(; q; q--)
{
f>>p>>k;//al k lea stramos al lui p
str=r[k-1][p];
g<<str<<'\n';
}
}