Cod sursa(job #1349381)

Utilizator nicnic28nichita trita nicnic28 Data 20 februarie 2015 10:19:04
Problema Range minimum query Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <fstream>
using namespace std;
#define cmin(a,b) a<b?a:b
const int N=1<<17;

int arb[2*N+1],v[N];
int c;
void build(int k, int st, int dr){
    if(st==dr-1){
        arb[k]=v[st];
        return ;
    }
    int m=(st+dr)/2;
    build(2*k,st,m);
    build(2*k+1,m,dr);
    arb[k]=cmin(arb[2*k],arb[2*k+1]);
}
int query(int k, int st, int dr, int a, int b){
    if(a<=st && b>=dr){  //[st,dr) c [a,b]
        return arb[k];
    }
    int r=1<<30;
    if(a>st){
        r=query(2*k+1,(st+dr)/2,dr,a,b);
    }
    if(b<dr){
        int q=query(2*k, st,(st+dr)/2,a,b);
        r=cmin(r,q);
    }
    return r;
}
int main()
{
    cout << "Hello world!" << endl;
    return 0;
}