Asta e solutia bruta:
#include <fstream>
using namespace std;
int v[1005]; //in loc de 1005 pui valoarea maxima a lui N
int main(){
ifstream fin ("numefisier.in"); //in loc de numefisier.in pui numele fisierului de intrare
ofstream fout ("numefisier.out"); //in loc de numefisier.out pui numele fisierului de iesire
int n,op,i,j,a,b,x,max,nr;
fin >>n>>op; //n =nr. de elemente; op =nr. de operatii
for (i=1;i<=n;++i) fin>>v[i]; //citesti vectorul
for (i=1;i<=op;++i){
fin>>nr; //citesti cifra din fata (0 sau 1)
if (nr==0){ //daca este 0
fin>>a>>b>>x; //citesti a,b,x
for (j=a;j<=b;++j) v[j]=v[j]+x; //incrementezi toate valorile cu x
}
else{ //daca este 1
max=-1; //valoarea maxima
fin >>a>>b; //citesti capetele
for (j=a;j<=b;++j)
if (v[j]>max) max=v[j]; //verifici daca nu cumva valoarea este maxima
fout <<max<<"\n"; //afisezi
}
}
return 0;
}
problema se poate rezolva cu metode mai elegante dar daca tie iti trebuie pur si simplu o rezolvare... asta e ok.
daca nu intelegi ceva spune-mi te rog
