Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define nmax 100001
- using namespace std;
- ifstream f("aemi.in");
- ofstream g("aemi.out");
- int arb[4*nmax+55];
- int i,n,v,m,mi,x,y,t;
- void update(int nod,int st,int dr,int poz,int val)
- {
- if(st==dr)
- {
- arb[nod]=val;
- return;
- }
- int mij=(st+dr)/2;
- if(poz<=mij)update(2*nod,st,mij,poz,val);
- else update(2*nod+1,mij+1,dr,poz,val);
- arb[nod]=min(arb[2*nod],arb[2*nod+1]);
- }
- void query(int nod,int st,int dr,int a,int b)
- {
- if(a<=st&&dr<=b)
- {
- mi=min(mi,arb[nod]);
- return;
- }
- int mij=(st+dr)/2;
- if(a<=mij)query(2*nod,st,mij,a,b);
- if(mij<b)query(2*nod+1,mij+1,dr,a,b);
- }
- int main()
- {
- f>>n;
- for(i=1;i<=n;++i)
- {
- f>>v;
- update(1,1,n,i,v);
- }
- f>>m;
- while(m--)
- {
- f>>t>>x>>y;
- if(t==1)
- mi=INT_MAX,query(1,1,n,x,y),g<<mi<<'\n';
- else
- update(1,1,n,x,y);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement