1 条题解
-
0
#include #include #include using namespace std;
int main() { int n; cin >> n;
vector<int> a(n+1); for (int i = 1; i <= n; i++) { cin >> a[i]; } vector<int> diff(n+5, 0); // 差分数组 for (int i = 1; i <= n; i++) { if (a[i] > 0) { int l = i; int r = min(n, i + a[i] - 1); diff[l] += 1; diff[r + 1] -= 1; } } vector<int> wet(n+1, 0); for (int i = 1; i <= n; i++) { wet[i] = wet[i-1] + diff[i]; } for (int i = 1; i <= n; i++) { if (wet[i] > 0) { cout << 1 << " "; } else { cout << 0 << " "; } } cout << endl; return 0;}
- 1
信息
- ID
- 14538
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 2
- 已通过
- 2
- 上传者