Advertisement
a53

aint

a53
May 28th, 2017
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define nmax 100001
  3. using namespace std;
  4. ifstream fin("aint.in");
  5. ofstream fout("aint.out");
  6. int arb[4*nmax+55];
  7. int i,n,v,m,mi,x,y,t;
  8. void update(int nod, int st, int dr, int poz, int val)
  9. {
  10. if(st==dr)
  11. {
  12. arb[nod]=val;
  13. return;
  14. }
  15. int mij=(st+dr)/2;
  16. if(poz<=mij)update(2*nod,st,mij,poz,val);
  17. else update(2*nod+1,mij+1,dr,poz,val);
  18. arb[nod]=min(arb[2*nod],arb[2*nod+1]);
  19. }
  20. void query(int nod, int st, int dr, int a, int b)
  21. {
  22. if(a<=st && dr<=b)
  23. {
  24. mi=min(mi,arb[nod]);
  25. return;
  26. }
  27. int mij=(st+dr)/2;
  28. if(a<=mij)query(2*nod,st,mij,a,b);
  29. if(mij<b)query(2*nod+1,mij+1,dr,a,b);
  30. }
  31. int main()
  32. {
  33. fin>>n>>m;
  34. for(i=1;i<=n;i++)
  35. {
  36. fin>>v;
  37. update(1,1,n,i,v);
  38. }
  39. while(m--)
  40. {
  41. fin>>t>>x>>y;
  42. if(t==1)
  43. update(1,1,n,x,y);
  44. else
  45. {
  46. mi=INT_MAX;
  47. query(1,1,n,x,y);
  48. fout<<mi<<"\n";
  49. }
  50. }
  51. return 0;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement