Tworzenie kilku tablic dynamicznych - SPOJ

0

Witam.
Mój problem jest natury technicznej.

Rozwiązuje zadanie :

http://pl.spoj.com/problems/PP0602B2/

#include <iostream>

using namespace std;
void create(int **tab, int **tab2, int l, int k);
void show ( int **tab, int l, int k)
{

    for ( int i =0; i < l; i++)
    {
        for (int j=0; j < k; j++)
        {
            cout << tab[i][j] << "  ";
        }
        cout << endl;
    }
}
void putIn ( int **tab, int l, int k);
void changePosition(int **tab, int **tab2, int l, int k);
int main()
{
    int t;
    int l,k;
    cin >> t;
    int **tab;
    int **tab2;

    while ( t--)
    {

        cin >> l >> k;
        tab = new int *[k];
        tab2 = new int *[k];
        create(tab,tab2, l,k);
        putIn(tab,l,k);
        changePosition(tab,tab2,l,k);
        show(tab2,l,k);
        for (int i = 0; i < l ; i++)
         {
             delete[]  tab[i];
             delete[]  tab2[i];
         }
         delete[] tab;
         delete[] tab2;

    }
    return 0;
}
void create(int **tab, int **tab2, int l, int k)
{
    for (int i =0; i < l; i++)
    {
        tab[i] = new int [l];
        tab2[i] = new int [l];
    }
}
void putIn ( int **tab, int l, int k)
{
    for ( int i =0; i < l; i++)
    {
        for (int j=0; j < k; j++)
        {
            cin >> tab[i][j];
        }
    }
}

void changePosition(int **tab, int **tab2, int l, int k)
{
    for ( int j =0; j < k; j++)
    {
        for (int i =0; i < l; i++)
        {
            if ( j % 2 == 0)
            {
                if ( i == l-1 && j!=k-1)
                {
                    tab2[i][j+1] = tab[i][j];
                }
                else if (i == l-1 && j == k-1 )
                {
                    tab2[0][0] = tab[i][j];

                }
                else
                    tab2[i+1][j] = tab[i][j];


            }
            else
            {
                if ( i == 0 && j!=k-1)
                {
                    tab2[i][j+1] = tab[i][j];
                }
                else if ( i ==0 && j == k-1)
                {
                    tab2[0][0] = tab[i][j];
                }
                else
                    tab2[i-1][j] = tab[i][j];


            }
        }
    }
}

I algorytm wszystko ładnie przestawia, jednak problem pojawia się, gdy chce przejść do następnej tablicy. Po prostu zwyczajnie wyrzuca błąd.
Ktoś da rade mi pomóc ?

Pozdrawiam

0

Chodzi o to, że program dobrze przestawia cyfry, ale problem pojawia się, gdy przechodzi do kolejnego testu.
Na ideaone tylko to widac, bo gdy testuje u siebie w konsoli wszystko dziala normalnie.

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