Pagini recente » Cod sursa (job #486855) | Cod sursa (job #3257021) | Cod sursa (job #1421542) | Cod sursa (job #2360315) | Cod sursa (job #2755135)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("rmq.in");
ofstream g("rmq.out");
#define NMax 100005
#define LMax 19
int main()
{
auto rmq = new int[NMax][LMax];
vector<int> v;
int n,x;
f >> n;
for(int i = 0; i< n; i++){
f >> x;
v.push_back(x);
}
for(int i =0; i< 100001; i++){
for(int j = 0; j< 18; j++){
rmq[i][j] = 1000000;
}
}
for(int i = 0; i< n; i++){
rmq[i][0] = v[i];
}
int range = 2;
for(int j = 1; range <= n; j++, range*=2){
for(int i = 0; i< n; i++){
cout<< i << " " <<rmq[i][j-1] << " " <<rmq[i+range/2][j-1] <<endl;
rmq[i][j] = min(rmq[i][j-1], rmq[i+range/2][j-1]);
}
}
cout << rmq[0][2];
return 0;
}