Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <bits/stdc++.h>int main(){std::ios::sync_with_stdio(false);std::cin.tie(nullptr);std::cout.tie(nullptr);int n;std::cin >> n;std::vector<int> a(n + 1);for (int i = 1; i <= n; ++i){std::cin >> a[i];}int blockSize = static_cast<int>(std::sqrt(n));std::vector<int> step(n + 1);std::vector<int> nextBlock(n + 1);auto update = [&](int x){int next = a[x] + x;if (next > n){step[x] = 1;nextBlock[x] = -1;}else{int b = x / blockSize;if (next / blockSize != b){