1 条题解
-
0
#include <bits/stdc++.h> using namespace std; int n, m; int maxx; int a[100001], u[100001], s[100001], ans[100001]; char tmp; int main() { cin >> n >> m; for (int i = 1; i <= n; i++) { cin >> a[i]; } for (int i = 1; i <= m; i++) { cin >> tmp; if (tmp == 'i') { cin >> s[i] >> u[i]; } else { cin >> u[i]; } } for (int i = m; i > 0; i--) { if (!s[i]) { // 更新一下当前的基准线的最大值 maxx = max(maxx, u[i]); } else if (!ans[s[i]]) { // 如果第s[i]个没被更新过,那么更新 // 他的值,一定是当前基准线的最大值和u[i]中的较大值 (自己思考一下) ans[s[i]] = max(maxx, u[i]); } } for (int i = 1; i <= n; i++) { if (!ans[i]) { //如果第i个没被更新过,那么他一定是当前基准线的最大值和a[i]中的较大值 ans[i] = max(a[i], maxx); } cout << ans[i] << endl; } return 0; }
- 1
信息
- ID
- 2047
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- 递交数
- 27
- 已通过
- 8
- 上传者