Dane jest zadanie:
Na przemian
Limit pamięci: 64 MB
Antek z Zuzią często bawią się w pisanie liczb. Na kartce zapisują na przemian liczby całkowite - raz Zuzia, raz Antek. W wyniku zabawy powstaje zazwyczaj wiele zapisanych liczbami kartek.
Zadanie
Napisz program, który:
- wczyta ze standardowego wejścia:
- liczbę kartek zapisanych przez dzieci,
- liczbę elementów ciągu,
- ciąg liczb całkowitych,
- dla każdego zestawu danych wypisze na standardowe wyjście wczytane liczby w taki sposób, aby najpierw pojawiły się liczby zapisane przez Antka, a następnie te, które zapisała Zuzia (według kolejności występowania na wejściu).
Wejście
Pierwszy wiersz zawiera jedną liczbę całkowitą (), będącą liczbą zestawów danych. W kolejnych wierszach znajdują się opisy poszczególnych zestawów danych. Każdy zestaw składa się z liczby () oraz następujących po niej liczb (, ), pooddzielanych pojedynczymi odstępami.
Wyjście
Program powinien wypisać wierszy. W -tym z nich powinien się znajdować ciąg odpowiadający -temu zestawowi danych. Są to wczytane liczby w zmienionej kolejności - najpierw liczby, które były na wejściu na pozycjach parzystych, następnie liczby z pozycji nieparzystych.
Przykład
Dla danych wejściowych:
2
3 5 7 2
4 2 1 4 3
poprawną odpowiedzią jest:
7 5 2
1 3 2 4
Napisałem taki kod:
#include <iostream>
using namespace std;
int main()
{
int ile, a, n, k, p, g, z=0, t;
int koncowa [1];
cin>>ile;
for (a=0; a<ile; a)
{
cin>>k;
int tab[k*2];
for (n=0; n<k; n++)
{
cin>>tab[n*(a+1)];
}
a++;
}
for(g=0; g<ile; g)
{
p=0;
while (p<=1)
{
for (t=0; t<ile; t+2)
{
cout<<tab[t]<<endl;
}
p++;
}
g++
}
}
Oczywiście widzę gdzie jest w nim błąd - tablica o nazwie tab została zadeklarowana lokalnie. Jednak potrzebuję jej użyć w dalszych instrukcjach, co prze obecnej (lokalnej) deklaracji jest oczywiście niemożliwe. Nie można jej zadeklarować wcześniej (poza pętlą for), gdyż dopiero w tej pętli dostarczana jest informacja o wielkości pożądanej tabeli. I tu pojawia się pytanie: czy ktoś ma może pomysł jak rozwiązać ów problem?