Cześć, jako że nigdy nie miałem nic wspólnego ze SPOJem, postanowiłem sprawdzić jak to jest i zrobić coś w ramach treningu. Wybrałem sobie jakieś proste zadanko, ale czego bym nie zrobił, SPOJ ciągle mi daje komunikat: błąd wykonania (NZEC).
Już nawet pilnuję spacji na końcu łańcuchów, bo nie mam pojęcia o co tam chodzi.
Zadanie: http://pl.spoj.com/problems/PP0602A/
Moje rozwiązanie (sprawdzone lokalnie na kilku przykładowych zestawach i działa)
static void PrintResults(int[] results)
{
//parzyste
for (int i = 0 + 1; i < results.Length; i = i + 2)
{
Console.Write(results[i].ToString() + " ");
}
//nieparzyste
for (int i = 0; i < results.Length; i = i + 2)
{
Console.Write(results[i].ToString());
if (i < results.Length - 1)
Console.Write(' ');
}
}
static int[] ParseInput(string s)
{
string[] values = s.Split(' ');
int[] result = new int[int.Parse(values[0])];
for(int i = 1; i < values.Length; i++)
result[i - 1] = int.Parse(values[i]);
return result;
}
public static void Main(string[] args)
{
int testCount = int.Parse(Console.ReadLine());
int[][] tests = new int[testCount][];
for (int i = 0; i < testCount; i++)
{
string input = Console.ReadLine();
tests[i] = ParseInput(input);
}
for (int i = 0; i < testCount; i++)
{
PrintResults(tests[i]);
Console.WriteLine();
}
}
To jest to, co wklejam na SPOJ. W pierwszej wersji odczytywałem po prostu wszystkie liczby po kolei. Ale pomyślałem, że może faktycznie spoj wali całymi liniami tekstu, czyli np:
"3 9 8 7"
a nie:
3
9
8
7
Więc zmieniłem i dodałem metodę ParseInput, która to ogarnia.
Ale SPOJ ciągle mi pokazuje: błąd wykonania (NZEC).
Język C#. O co tu może chodzić?