Cod sursa(job #2118194)

Utilizator malina2109Malina Diaconescu malina2109 Data 30 ianuarie 2018 12:02:47
Problema Arbori de intervale Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.01 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("arbint.in");
ofstream g("arbint.out");
int poz,x,arb[1<<19],n,m,a,b;
void actualizare(int nod, int st, int dr)
{
    if(st>=poz && poz>=dr)
    {
        arb[nod]=x;
        return;
    }
    int    m=(st+dr)>>1;
    if(poz<=m)
        actualizare(nod<<1,st,m);
    else actualizare((nod<<1)+1,m+1,dr);
    if (arb[nod<<1]<arb[(nod<<1)+1]) arb[nod]=arb[(nod<<1)+1];
       else arb[nod]=arb[nod<<1];

}
void interogare(int nod,int st, int dr)
{
    int m,x1,x2;
    x1=x2=0;
     if (a<=st && dr<=b)
        return arb[nod];
}
int main()
{
    f>>n>>m;
    for(int i=1; i<=n; i++)
    {
        f>>x;
        poz=i;
        actualizare(1,1,n);
    }
    for(int i=1;i<=m;i++)
    {
        int intr;
        f>>instr>>a>>b;
        if(instr==0)
        {
            g<<interogare(1,1,n)
        }
        else
        {
           poz=a;x=b;
           actualizare(1,1,n);
        }
    }
    return 0;
}