În pădurea magica plină de alune trăia o veveriță mică pe care o chema VeVe. De când era o veveriță și mai
mica, tot ce și-a dorit a fost să devină grasă, dorind mereu să mănânce mai multe alune. Totuși, fiind foarte
puturoasă, VeVe nu mânca alune decât dintr-un singur copac.
Pădurea magică este alcătuită din n * m copaci, distribuiți pe n linii și m coloane, fiecare cu un număr nenul
de alune. Se știe faptul că în fiecare zi, în mod magic, apar schimbări asupra copacilor: tuturor copaciilor
dintre pozițiile din dreptunghiul cu colţul stângă sus i1, j1 și i2, j2 colţul dreapta jos li se modifică numărul
de alune prin adaugarea unei valori x.
Cerință
Dându-se n și m, numărul de alune inițial din fiecare copac și schimbările care au loc, ajutați-o pe VeVe să
determine care este numărul maxim de alune dintr-un copac.
Date de intrare
Fișierul de intrare alune.in conține pe primul rând două numere: n și m cu semnificaţia de mai sus. Pe
următoarele n linii se află câte m numere, fiecare număr reprezentând numărul de alune inițial din fiecare
copac. Pe următoarea linie se află un singur număr z reprezentând numărul de schimbări. Următoarele z linii
descriu schimbările. Pe fiecare linie se află câte 5 numere i1 j1 i2 j2 x care descriu schimbarea: copacilor din
dreptunghiul determinat de colţul stânga sus ti1,j1 și colţul dreapta jos i2,j2 li se modifică numărul de alune
cu x.
Date de ieșire
Fișierul de ieșire alune.out conține un singur număr, reprezentând valoare maxima a numărului de alune
dintr-un copac.
Restricţii şi precizări
- 1<=n,m<=1000
- z<=10000
- x este o valoare de tip întreg
- În orice moment numărul de alune ale unui copac poate avea cel mult 18 cifre (pozitiv sau negativ)
VeVe vă mulțumește că ați ajutat-o să se îngrașe.
La finalul schimbarilor maximul este 20.
Timp maxim de execuţie: 0.4 secunde/test
Memorie totală disponibilă: 16 MB, din care 16 MB pentru stivă
Dimensiunea maximă a sursei: 5 Kb
Răspunsuri la întrebare
Răspuns:
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("alune.in");
ofstream g("alune.out");
long long n,m,i,j,z,i1,j1,i2,j2,x,maxim, v[1001][1001];
int main()
{
f >> n >> m;
for (i=1; i<=n; ++i)
{
for (j=1; j<=m; ++j)
f >> v[i][j];
}
f >> z;
for (long long t=1; t<=z; ++t)
{
f >> i1 >> j1 >> i2 >> j2 >> x;
for (i=i1; i<=i2; ++i)
{
for (j=j1; j<=j2; ++j)
v[i][j]+=x;
}
}
maxim=v[1][1];
for (i=1; i<=n; ++i)
{
for (j=1; j<=m; ++j)
if (v[i][j]>maxim) maxim=v[i][j];
}
g << maxim;
}
Explicație:
dacă scria-i şi de unde e problema, poate aveam posibilitate să testăm codul pe acel site să ne încredinţăm că codul e de 100, dar aşa postăm o părere... Dacă testezi codul undeva, ne dai de ştire cum a mers.... Succese!