Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <cstdio>#include <algorithm>using namespace std;int N, Q, a, b, c, W[10000], t[32768];int main() {scanf("%d", &N);for (int i = 0; i < N; ++i)scanf("%d", W + i);int n = 1;while (n < N + 2)n <<= 1;for (int i = n; i < n << 1; ++i)if (i > n && i < n + 1 + N)t[i] = W[i - n - 1];elset[i] = 10001;for (int i = n - 1; i > 0; --i)t[i] = min(t[i << 1], t[(i << 1) + 1]);scanf("%d", &Q);while (Q--) {scanf("%d%d%d", &a, &b, &c);if (a == 0) {int mn = 10001;for (int i = b + n - 1, j = c + n + 1; i ^ j ^ 1; i >>= 1, j >>= 1) {mn = i & 1 ? mn : min(mn, t[i ^ 1]);mn = j & 1 ? min(mn, t[j ^ 1]) : mn;}printf("%d\n", mn);}if (a == 1) {