Treść zadania: Wiesiek wziął prostokątną tablicę o wymiarach n × m podzieloną na nm jednakowych kwadratowych pól i namalował na niektórych z nich liczbę 3. Niestety był zmuszony nieść swoje dzieło przez deszcz i praca rozmyła się. Mówiąc ściślej pomalowane pola zafarbowały wszystkie sąsiadujące bokiem pola liczbą 2, te zaś zafarbowały sąsiadujące pola na 1. Jak teraz wygląda praca Wieśka?
Przykład:
Wejście:
3 5
00003
00300
00330
Wyjście:
01223
12322
12332
Moje nie działające rozwiązanie:
#include <iostream>
#include<iomanip>
using namespace std;
int w,k;
int i,j;
int nr, wr;
int main()
{
cin>>w;
cin>>k;
int tablica[w][k];
for(i=0; i<w; i++)
for(j=0; j<k; j++)
cin>>tablica[i][j];
switch(tablica[nr][wr]==3)
{
case 1: if(tablica[nr-1][wr]<3) tablica[nr-1][wr]=3-1;
case 2: if(tablica[nr+1][wr]<3) tablica[nr+1][wr]=3-1;
case 3: if(tablica[nr][wr-1]<3) tablica[nr][wr-1]=3-1;
case 4: if(tablica[nr][wr+1]<3) tablica[nr][wr+1]=3-1;
case 5: if(tablica[nr][wr+2]<2) tablica[nr][wr+2]=3-2;
case 6: if(tablica[nr-2][wr]<2) tablica[nr-2][wr]=3-2;
case 7: if(tablica[nr][wr-2]<2) tablica[nr][wr-2]=3-2;
case 8: if(tablica[nr+2][wr]<2) tablica[nr+2][wr]=3-2;
}
for(i=0; i<w; i++)
{
for(j=0; j<k; j++)
cout<<setw(5)<<tablica[i][j];
cout<<endl;
}
return 0;
}
Problem: switch działa tylko dla tablicy "tablica[0][0]" nie analizuje reszty np.
wejście 3 3
300
000
000
wyjście:
321
200
100
Z góry dziękuje za pomoc :)