| Task: | Dynamic Range Minimum Queries |
| Sender: | aalto26dh_004 |
| Submission time: | 2026-09-23 14:42:54 +0300 |
| Language: | C++ (C++20) |
| Status: | READY |
| Result: | WRONG ANSWER |
| test | verdict | time | |
|---|---|---|---|
| #1 | WRONG ANSWER | 0.00 s | details |
| #2 | WRONG ANSWER | 0.54 s | details |
Code
#include "iostream"
#include "cmath"
#include "climits"
#include "algorithm"
int main() {
int n, q;
std::cin >> n >> q;
int m = std::sqrt(n);
int array[n], mins[m + 1];
for (int i = 0; i < m; i++) {
for (int j = 0; j < m; j++) {
std::cin >> array[i * m + j];
}
mins[i] = *std::min_element(array + i * m, array + (i + 1) * m);
}
int rest = n - m * m;
for (int i = 0; i < rest; i++) {
std::cin >> array[m * m + i];
}
if (rest) mins[m] = *std::min_element(array + m * m, array + n);
int queries[3];
for (int i = 0; i < q; i++) {
std::cin >> queries[0] >> queries[1] >> queries[2];
int idx = (queries[1] - 1) / m;
if (queries[0] == 1) {
array[queries[1] - 1] = queries[2];
mins[idx] = *std::min_element(array + idx * m, array + (idx + 1) * m);
} else {
int idx2 = (queries[2] - 1) / m;
int tmp = *std::min_element(mins + idx, mins + idx2);
for (int i = queries[1] - 1; i < (idx + 1) * m; i++) {
tmp = std::min(tmp, array[i]);
}
for (int i = idx2 * m; i < queries[2] - 1; i++) {
tmp = std::min(tmp, array[i]);
}
std::cout << tmp << std::endl;
}
}
}Test details
Test 1
Verdict: WRONG ANSWER
| input |
|---|
| 8 80 7 6 4 6 2 9 4 8 2 1 1 2 1 2 2 1 3 ... |
| correct output |
|---|
| 7 6 4 4 2 ... |
| user output |
|---|
| 6 6 6 4 4 ... |
Feedback: Incorrect character on line 1 col 1: expected "7", got "6"
Test 2
Verdict: WRONG ANSWER
| input |
|---|
| 200000 200000 398739055 65343131 699208332 3... |
| correct output |
|---|
| 28609 129890 20378 20378 311522 ... |
| user output |
|---|
| 28609 129890 20378 20378 311522 ... |
Feedback: Incorrect character on line 54 col 1: expected "1848319", got "-1866775953"
