Zadanie ze SPOJa - dobry wynik, a zła odpowiedź

0

Witam. Napisałem program, który według mnie działa poprawnie, jednak coś jest nie tak. Chodzi o brak znaku nowej linii gdzieś czy o co chodzi?
LINK: http://pl.spoj.com/problems/PTSUMY/

 
#include <iostream>
using namespace std;

int ZESTAWY;

int main()
{
    cin >> ZESTAWY;

    for(int n=0; n<ZESTAWY; n++)
    {
        int liczba;
        cin >> liczba;

        int ilosc_skladnikow = liczba;
        int skladniki[liczba];
        int pozycja = liczba-1;
        for(int n2=0; n2<ilosc_skladnikow; n2++)
            skladniki[n2] = 1;
        while(ilosc_skladnikow)
        {
            ///=========================
            for(int n2=0; n2<ilosc_skladnikow; n2++)
                cout<<skladniki[n2]<<" ";
            cout<<endl;
            ///=========================
            if(ilosc_skladnikow == 1)
            {
                break;
            }
            else
            {
                if(skladniki[ilosc_skladnikow-2]+2 > skladniki[ilosc_skladnikow-1])
                {
                    skladniki[ilosc_skladnikow-2] = skladniki[ilosc_skladnikow-2] + skladniki[ilosc_skladnikow-1];
                    ilosc_skladnikow--;
                }
                else
                {
                    skladniki[ilosc_skladnikow-2] += 1;
                    skladniki[ilosc_skladnikow-1] -= 1;
                }
            }
        }
        cout<<endl;
    }
}

Taki sam problem mam z zadaniem: http://pl.spoj.com/problems/PP0602B/

 
#include <iostream>
using namespace std;

int ZESTAWY;

int main()
{
    cin >> ZESTAWY;

    for(int n=0; n<ZESTAWY; n++)
    {
        ///========================================================
        int WIERSZE, KOLUMNY;
        cin >> WIERSZE >> KOLUMNY;
        int TAB[KOLUMNY][WIERSZE];
        for(int y=0; y<KOLUMNY; y++)
        for(int x=0; x<WIERSZE; x++)
         cin >> TAB[y][x];
        ///========================================================
        int x=0, y=0, pierwsza;
        pierwsza = TAB[0][0];
        for(int postep=0; postep<(KOLUMNY*2 + WIERSZE*2 - 4); postep++)
        {
            if(y==0 && x<WIERSZE-1){
                TAB[y][x] = TAB[y][x+1];
                x++;
            }else
            if(x==WIERSZE-1 && y<KOLUMNY-1){
                TAB[y][x] = TAB[y+1][x];
                y++;
            }else
            if(y==KOLUMNY-1 && x>0){
                TAB[y][x] = TAB[y][x-1];
                x--;
            }else
            if(x==0 && y>0){
                TAB[y][x] = TAB[y-1][x];
                y--;
            }
        }
        TAB[1][0] = pierwsza;
        for(int y=0; y<KOLUMNY; y++){
            for(int x=0; x<WIERSZE; x++){
                cout << TAB[y][x] << " ";
            }
            cout << endl;
        }
    }
}
2

odpal z danymi:
1
10
i zastanów się gdzie masz:
2 2 2 2 2

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