modyfikowanie tablicy dwuwymiarowej

0

Gdzieś jest błąd w moim rozwiązaniu, pomoże ktoś?

Bajtocki ogród działkowy (BOD) od wielu lat hoduje warzywa - wyłącznie marchewki i pietruszki. BOD ma kształt kwadratu o boku długości i jest podzielony na jednostkowych pól. Na każdym z nich rośnie dokładnie jedna marchewka lub jedna pietruszka.

Specjalna hodowla decyduje o wyjątkowości i smaku warzyw. Polega ona na corocznym wybieraniu pewnego obszaru, dla którego dokonujemy zamiany hodowli. Zamiana hodowli polega na posadzeniu marchewek wszędzie tam, gdzie rosły dotąd pietruszki, a pietruszek wszędzie tam, gdzie rosły marchewki. Na pozostałym obszarze marchewki i pietruszki rosną dokładnie tam, gdzie rok temu.

Właściciel ogrodu rozpisał plan hodowli na wiele lat. Zastanawia się teraz, jak będzie wyglądał jego ogród działkowy po tych wszystkich latach.

Wejście
Pierwszy wiersz standardowego wejścia zawiera jedną liczbę całkowitą (), oznaczającą rozmiar ogrodu działkowego. W kolejnych wierszach znajduje się opis działki.

Każdy wiersz opisuje jeden pas ogrodu i zawiera liczb całkowitych , (), gdzie opisuje -te pole w rozpatrywanym pasie działki. Jeśli jest równe 0, to na polu tym rośnie marchewka, jeśli natomiast jest równe 1, to rośnie tam pietruszka.

Kolejny wiersz wejścia zawiera jedną liczbę całkowitą (), oznaczającą liczbę lat, dla których właściciel rozpisał plan hodowli. W następnych wierszach znajduje się opis zamian hodowli w kolejnych latach.

Każdy wiersz zawiera cztery liczby całkowite (), oznaczające, że w danym roku właściciel planuje dokonać zamiany hodowli na polach wyznaczonych przez prostokąt, ktorego lewy górny róg posiada współrzędne , a prawy dolny róg . W testach wartych około punktów zachodzą dodatkowe warunki .

Wyjście
Standardowe wyjście powinno zawierać wierszy. Każdy wiersz powinien opisywać kolejny pas działki po latach i powinien zawierać liczb całkowitych , gdzie powinno być równe 1 - jeśli na tym polu rosnąć będzie marchewka lub 0 - jeśli pietruszka.

Przykład
Dla danych wejściowych:

4
1 1 0 1
0 0 1 0
1 0 1 1
0 1 0 1
2
3 1 4 3
2 3 3 4
poprawną odpowiedzią jest:

1 1 1 0
0 0 0 1
1 1 1 0
0 0 1 1

[cpp]
#include <cstdio>

int main()
{short int n, x1, x2, y1, y2;
scanf("%hd", &n);
short int BOD[n][n];
for(short int a=0; a<n; a++)
{for (short int b=0; b<n; b++)
scanf("%hd", &BOD[a][b]);}
int m;
scanf("%d", &m);
for (int c=0; c<m;c++)
{scanf("%hd %hd %hd %hd", &x1, &y1, &x2, &y2);
for (short int d=x1-1; d<x2; d++)
{for (short int e=y1-1; e<y2; e++)
{if (BOD[d][e]==0)
BOD[d][e]=1;
else
BOD[d][e]=0;

    }}}

for(short int f=0; f<n; f++)
{for (short int g=0; g<n; g++)
printf("%hd ", &BOD[f][g]);
printf("\n");}
return 0;
} [/cpp]

0

wrzuć na początek kod w znaczniki

0

A czy zaobserwowałeś coś niepokojącego na wyjściu swojego programu, np. jakieś niepokojąco długie liczby?

1 użytkowników online, w tym zalogowanych: 0, gości: 1