Pagini recente » Unirea 2007, Clasament pentru clasele IX-X | Cod sursa (job #2863876) | Cod sursa (job #1124087) | Cod sursa (job #1818) | Cod sursa (job #3286735)
#include <fstream>
using namespace std;
int v[100001];
int n, m;
int sg[300000];
void construct(int input[], int segmentTree[], int low, int high, int pos)
{
if(low == high)
{
segmentTree[pos] = input[low];
return;
}
int mid = (low+high) / 2;
construct(input, segmentTree, low, mid, pos * 2 + 1);
construct(input, segmentTree, mid+1, high, pos * 2 + 2);
segmentTree[pos] = min(segmentTree[2 * pos + 1], segmentTree[2 * pos + 1]);
}
int main()
{
ifstream f("rmq.in");
ofstream g("rmq.out");
f>>n>>m;
for(int i = 0; i<n; i++)
{
f>>v[i];
}
for(int i = 0; i<300000; i++)
{
sg[i] = 2e9;
}
construct(v, sg, 0, 3, 0);
for(int i = 0; i<17; i++)
{
g<<sg[i]<<" ";
}
return 0;
}