👤

Intr-o gradina zoologica reprezentata printr-o matrice A cu n linii si m coloane. Fiecare cusca se afla intr-o pozitie din matrice si contine x animale. De exemplu daca A[2][6] = 5 inseamna ca in cusca de pe linia 2 si coloana 6 se afla 5 animale. Sa se raspunda la Q intrebari de forma i1, j1, i2, j2 unde raspunsul va fi numarul de animale din dreptunghiul din matrice cu cordonatele coltului din stanga sus i1 si j1 si cordonatele coltului din dreapta jos i2 si j2, unde i reprezinta linia si j coloana.

Răspuns :

#include <fstream>

using namespace std;

ifstream f("zoo.in");

ofstream g("zoo.out");

int n,m,a[105][105];

long long s[105][105];

int main()

{   f>>n>>m;

   for(int i=1; i<=n; i++)

       for(int j=1; j<=m; j++) f>>a[i][j];

   for(int i=1; i<=n; i++)

       for(int j=1; j<=m; j++)

           s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j];

   int q;

   f>>q;

   while(q--)

   {   int i1,j1,i2,j2;

       f>>i1>>j1>>i2>>j2;

       g<<s[i2][j2]-s[i2][j1-1]-s[i1-1][j2]+s[i1-1][j1-1]<<'\n';

   }

   return 0;

}