Mai intai trebuie sa te autentifici.
Cod sursa(job #3132760)
Utilizator | Data | 23 mai 2023 19:40:02 | |
---|---|---|---|
Problema | Range minimum query | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.59 kb |
#include <iostream>
#include <fstream>
#include <cmath>
ifstream f("rmq.in");
ofstream g("rmq.out");
int a[100001][17];
int main(){
int n, m, x, y, i, p , min;
f >> n >> m;
for( i = 1; i <= n; i++)
f >> a[i][0];
for( p = 1; p < 17; p++)
for( i = 1; i + (1 << p) - 1 <= n; i++)
a[i][p] = min(a[i][p - 1], a[i + (1 << (p - 1))][p - 1]);
i = 0;
while(i < m ){
f >> x >> y;
p = log2(y-x+1);
min = min(a[x][p], a[y - (1 << p) + 1][p]);
g << min << endl;
i++;
}
return 0;
}