Pagini recente » Cod sursa (job #846967) | Cod sursa (job #731700) | Cod sursa (job #3200486) | Cod sursa (job #3147695) | Cod sursa (job #642007)
Cod sursa(job #642007)
#include<fstream>
using namespace std;
ifstream in("arbint.in");
ofstream out("arbint.out");
/*Fie un vector A cu N elemente naturale. Asupra lui se vor face M operatii, codificate astfel in fisierul de intrare:
• 0 a b - Sa se determine maximul din intervalul [a,b] (maximul dintre valorile Ai cu a ≤ i ≤ b).
• 1 a b - Valoarea elementului de pe pozita a va deveni b.
Date de intrare
Pe prima linie a fisierului de intrare se afla N si M. Pe urmatoarea linie se gasesc cele N elemente ale vectorului, iar urmatoarele M linii descriu operatia care trebuie efectuata.
Date de iesire
Pentru fiecare operatie de tip 0, se va afisa pe cate o linie maximul pentru intervalul cerut (in ordinea ceruta in fisierul de intrare).*/
int n,m;
const int Nmax = 100006;
int A[Nmax];
void Maxim(int a,int b)
{
int max = -1,i;
for( i=a;i<=b;++i)
{
if(A[i] > max)
max = A[i];
}
out<<max<<"\n";
}
void ReadData()
{
int i,tip,a,b;
in>>n>>m;
for(i=1;i<=n;++i)
{
in>>A[i];
}
for(i=1;i<=m;++i)
{
in>>tip>>a>>b;
if(tip ==0 )
Maxim(a,b);
else
A[a]=b;
}
}
int main()
{
ReadData();
return 0;
}