fork download
  1. /*input
  2. 5 5
  3. 2 2 7 14 14
  4. 1 1 3
  5. 1 2 6
  6. 2 2
  7. 2 4
  8. 2 5
  9. */
  10. #include<bits/stdc++.h>
  11. #include <ext/pb_ds/assoc_container.hpp>
  12. #include <ext/pb_ds/tree_policy.hpp>
  13. using namespace std;
  14. using namespace __gnu_pbds;
  15.  
  16. #define int long long
  17. #define double long double
  18. #define f first
  19. #define s second
  20. #define mp make_pair
  21. #define pb push_back
  22.  
  23. #define RE(i,n) for (int i = 1; i <= n; i++)
  24. #define RED(i,n) for (int i = n; i > 0; i--)
  25. #define REPS(i,n) for(int i = 1; (i*i) <= n; i++)
  26. #define REP(i,n) for (int i = 0; i < (int)n; i++)
  27. #define FOR(i,a,b) for (int i = a; i < b; i++)
  28. #define REPD(i,n) for (int i = n-1; i >= 0; i--)
  29. #define FORD(i,a,b) for (int i = a; i >= b; i--)
  30.  
  31. #define all(v) v.begin(),v.end()
  32. #define pii pair<int,int>
  33. #define vi vector<int>
  34. #define vvi vector<vi>
  35. #define print(arr) for (auto it = arr.begin(); it != arr.end(); ++it) cout << *it << " "; cout << endl;
  36. #define debug(x) cout << x << endl;
  37. #define debug2(x,y) cout << x << " " << y << endl;
  38. #define debug3(x,y,z) cout << x << " " << y << " " << z << endl;
  39.  
  40. typedef tree<
  41. int,
  42. null_type,
  43. less<int>,
  44. rb_tree_tag,
  45. tree_order_statistics_node_update>
  46. ordered_set;
  47.  
  48. const int INF = 1e18+1;
  49. const int MOD = 1e9+7;
  50. const double PI = 3.14159265358979323846264338;
  51.  
  52. int raise(int a,int n,int m = MOD){
  53. if(n == 0)return 1;
  54. if(n == 1)return a;
  55. int x = 1;
  56. x *= raise(a,n/2,m);
  57. x %= m;
  58. x *= x;
  59. x %= m;
  60. if(n%2)x*= a;
  61. x %= m;
  62. return x;
  63. }
  64.  
  65. int floor1(int n,int k){
  66. if(n%k == 0 || n >= 0)return n/k;
  67. return (n/k)-1;
  68. }
  69.  
  70. int ceil1(int n,int k){
  71. return floor1(n+k-1,k);
  72. }
  73.  
  74. const int N = 1e6+1;
  75. int a[N];
  76. int n,q;
  77.  
  78. void solve(){
  79. cin >> n >> q;
  80. RE(i,n){
  81. cin >> a[i];
  82. }
  83. RE(i,q){
  84. int ty;cin >> ty;
  85. if(ty == 1){
  86. int ind,val;
  87. cin >> ind >> val;
  88. a[ind] = val;
  89. }
  90. else{
  91. int ind;cin >> ind;
  92. while(ind > 1){
  93. if(a[ind]%a[ind-1] == 0)ind--;
  94. else break;
  95. }
  96. cout << ind << endl;
  97. }
  98. }
  99. }
  100.  
  101. signed main(){
  102. ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
  103. //freopen(".in","r",stdin);freopen(".out","w",stdout);
  104. int t = 1;
  105. //cin >> t;
  106. while(t--){
  107. solve();
  108. }
  109. return 0;
  110. }
Success #stdin #stdout 0s 4572KB
stdin
Standard input is empty
stdout
Standard output is empty