Cod sursa(job #1553752)
| Utilizator | Data | 20 decembrie 2015 14:23:23 | |
|---|---|---|---|
| Problema | Range minimum query | Scor | 20 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.69 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("rmq.in");
ofstream g ("rmq.out");
int main()
{
//fara arbori
int n,t , x, y , i ,j , Min , poz;
f >> n >> t;
int a[n + 1][n + 1];
for(i = 1;i <= n; ++i)
f >> a[0][i];
for(i = 1;i <= n; ++i)
{
Min = a[0][i];
poz = i;
for(j = i;j <= n; ++j )
{
if(a[0][j] < Min)
{
poz = j;
Min = a[0][j];
}
a[i][j] = poz;
}
}
for(i = 1;i <= t;i++)
{
f >> x >> y;
poz = a[x][y];
g << a[0][poz] << '\n';
}
return 0;
}
