Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.13 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define ma 500005
  5.  
  6. int a[ma],tree[4*ma];
  7.  
  8. int query(int node,int be,int en,int i,int j)
  9. {
  10.     if(i>en||j<be)
  11.         return INT_MAX;
  12.  
  13.     if(i<=be&&j>=en)
  14.         return tree[node];
  15.  
  16.     int left=node*2;
  17.     int right=node*2+1;
  18.     int mid=(be+en)/2;
  19.  
  20.     return min(query(left,be,mid,i,j),query(right,mid+1,en,i,j));
  21. }
  22.  
  23. void inti(int node,int be,int en)
  24. {
  25.     if(be==en)
  26.     {
  27.         tree[node]=a[be];
  28.         return;
  29.  
  30.     }
  31.     int left=node*2;
  32.     int right=node*2+1;
  33.     int mid=(be+en)/2;
  34.  
  35.     inti(left,be,mid);
  36.     inti(right,mid+1,en);
  37.  
  38.     tree[node]=min(tree[left],tree[right]);
  39. }
  40.  
  41.  
  42.  
  43. int main()
  44. {
  45.     int t;
  46.     scanf("%d",&t);
  47.  
  48.     for(int ii=1; ii<=t; ii++)
  49.     {
  50.         int n,q;
  51.         scanf("%d%d",&n,&q);
  52.  
  53.         for(int i=1; i<=n; i++)
  54.             scanf("%d",&a[i]);
  55.  
  56.         inti(1,1,n);
  57.  
  58.         printf("Case %d:\n",ii);
  59.  
  60.         while(q--)
  61.         {
  62.             int qq,qqq;
  63.             scanf("%d%d",&qq,&qqq);
  64.  
  65.             printf("%d\n",query(1,1,n,qq,qqq));
  66.  
  67.         }
  68.  
  69.     }
  70.  
  71.     return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement