Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Modyfikowanie tablicy dwuwymiarowej

Ostatnio zmodyfikowano 2015-11-19 07:48
Autor Wiadomość
midaged
Temat założony przez niniejszego użytkownika
Modyfikowanie tablicy dwuwymiarowej
» 2015-11-18 23:21:02
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






C/C++
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;
}
P-140368
darko202
» 2015-11-19 07:48:41
najprawdopodobniej pomyliłeś wiersze z kolumnami

zacznij badanie od tabeli
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0

nie podałeś całego rozwiązania - dlatego trudno powiedzieć coś więcej

wyświetl stan tabeli po każdej zmianie 


P-140369
« 1 »
  Strona 1 z 1