fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. using ll = long long;
  4.  
  5. int main(){
  6.  
  7. ll n,q,p,x,var;
  8.  
  9. cin >> n; ll arr[n+1], vis[n+1];
  10. for(ll i=1; i<=n; i++) {cin >> arr[i]; vis[i] = 0;}
  11.  
  12. cin >> q; ll Q[q+1][3]; // Q[i][0] = 1 or 2, Q[i][1] = p for 1 and x for 2, Q[i][2] = x for 1;
  13. for(ll i=1; i<=q; i++)
  14. {
  15. cin >> var;
  16. if(var == 1) {cin >> p >> x; Q[i][0] = 1; Q[i][1] = p; Q[i][2] = x;}
  17. else {cin >> x; Q[i][0] = 2; Q[i][1] = x; }
  18. }
  19.  
  20. ll mx = -1;
  21. for(ll i = q; i>0; i--)
  22. {
  23. if(Q[i][0] == 1)
  24. {
  25. if(!vis[Q[i][1]]) {arr[Q[i][1]] = max(mx, Q[i][2]); vis[Q[i][1]] = 1;}
  26. }
  27. else mx = max(mx, Q[i][1]);
  28. }
  29.  
  30. for(ll i=1; i<=n; i++)
  31. {
  32. if(!vis[i]) cout << max(arr[i], mx) << " ";
  33. else cout << arr[i] << " ";
  34. }
  35.  
  36. return 0;
  37. }
  38.  
  39. /*
  40. inputCopy
  41. 4
  42. 1 2 3 4
  43. 3
  44. 2 3
  45. 1 2 2
  46. 2 1
  47. outputCopy
  48. 3 2 3 4
  49.  
  50. inputCopy
  51. 5
  52. 3 50 2 1 10
  53. 3
  54. 1 2 0
  55. 2 8
  56. 1 3 20
  57. outputCopy
  58. 8 8 20 8 10
  59. */
Success #stdin #stdout 0s 4296KB
stdin
4
1 2 3 4
3
2 3
1 2 2
2 1
stdout
3 2 3 4