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, p, k, g, z=0, t;
int *tab;
cin>>ile;
int prz[ile];
for (a=0; a<ile; a)
{
cin>>k;
prz[a]=k;
int *tab = new int[(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<prz[g]; t+=2)
{
cout<<tab[t]<<endl;
}
p++;
}
g++;
}
}
Problem w tym, że program nie działa poprawnie (wypisuje na ekran błędny wynik). Czy ktoś ma może pomysł na rozwiązanie powyższego zadania w miarę przystępny sposób?