Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <algorithm>
- #include <vector>
- #define N 100000
- #define oo 2000000000
- using namespace std;
- ifstream fin("aemi.in");
- ofstream fout("aemi.out");
- int aint[4*N], n, Q;
- inline void Update(int p, int x)
- {
- int tata;
- aint[p]=x;
- while(p>=1)
- {
- tata=p/2;
- aint[tata]=min(aint[2*tata], aint[2*tata+1]);
- p=tata;
- }
- }
- inline int Query(int k,int st, int dr, int x, int y)
- {
- if(st==x && dr==y) return aint[k];
- int mij=(st+dr)/2;
- if(mij<x) return Query(2*k+1, mij+1, dr, x,y);
- else if(mij>=y)
- return Query(2*k,st, mij, x, y);
- else
- return min(Query(2*k,st, mij, x, mij),Query(2*k+1, mij+1, dr, mij+1,y) );
- }
- int main()
- {
- int k, p,i, op, x, y;
- fin>>k;
- n=1;
- while(n<k) n*=2;
- p=n;
- for(i=1;i<=k;i++)
- {
- fin>>x;
- aint[p++]=x;
- }
- for( ; p<=2*n-1;p++)
- aint[p]=oo;
- for(i=n-1;i>=1;i--)
- aint[i]=min(aint[2*i], aint[2*i+1]);
- fin>>Q;
- while(Q--)
- {
- fin>>op>>x>>y;
- if(op==2)Update(n-1+x,y);
- else fout<<Query(1,1,n,x,y)<<"\n";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement