[C++] niekolejne - spoj

0

Mam problem z tym zadaniem: https://pl.spoj.pl/problems/NIEKOLEJ/
zadanie dziala ok (przetestowalem mase przykladow), a sedzi wyrzuca bledna odpowiedź...

z gory dzieki za pomoc

#include <iostream>
using namespace std;

#include <stdlib.h>

int main()

{
    int k;
    cin >> k;
    int g = k;
    if (k <= 2)
        cout << "NIE" << endl;


    else if (k % 2 != 0 && k > 2)
    {
        cout << k - g / 2 << ' ';
        for (int i = 0; i < g / 2; i++)
            cout << i << ' ' << k - i << ' ';
        cout << (k - g / 2) - 1;
        cout << endl;
    }

    else
    {
        cout << k - g / 2 << ' ';
        for (int i = 0; i < g / 2; i++)
            cout << i << ' ' << k - i << ' ';

        cout << endl;
    }



    return 0;
}
0

podaj wynik dla k=3 :P

algorytmu nie sprawdzałem.

0

2 0 3 1

0

Ja, pamiętając kapryśność SPOJa poprawiłem trochę output:

#include <iostream>
using namespace std;

#include <stdlib.h>

int main()

{
    int k;
    cin >> k;
    int g = k;
    if (k <= 2)
        cout << "NIE";// << endl;


    else if (k % 2 != 0 && k > 2)
    {
        cout << k - g / 2 << ' ';
        for (int i = 0; i < g / 2; i++)
            cout << i << ' ' << k - i << ' ';
        cout << (k - g / 2) - 1;
        //cout << endl;
    }

    else
    {
        cout << k - g / 2 << ' ';
        for (int i = 0; i < g / 2; i++)
            cout << i << ' ' << k - i << ' ';

        //cout << endl;
    }



    return 0;
}

Doszedłem do 7 sędziego, ale 8 mnie ściął. I teraz nie wiem czy poprawiłem jeden błąd a został jeszcze jeden, czy SPOJ teraz akurat zgrywa tolerancyjnego a błąd jest gdzieś indziej. ;)

0

ok, nie wiem, wpisywalem rozne warianty i wydaje sie ze dziala dobrze...

a tak w ogóle, skad wiesz ktory sedzia wyrzucił bląd, jak to sie sprawdza podczas wrzucania zgloszenia?

0

Bo jeśli uruchamiane jest wiele programów sprawdzających (inaczej - jeśli twój program jest uruchamiany kilka razy) to SPOJ wypisuje to podczas sprawdzania. (po kolei - sędzia 1, sędzia 2 itd). Kiedy uruchamiałem program bez "patcha" to tego nie widziałem, ale to jeszcze niczego nie dowodzi (serwer mógł być mniej obciążony i szybciej sprawdził program tak że nie zdążył pokazać który sędzia).

Możesz spróbować uruchomić ten zmodyfikowany program na SPOJ.

(Co do wyników - też zrobiłem kilka testów i wygląda na to że rzeczywiście jest ok - ale tam lubią dawać podchwytliwe zadania więc nie można być pewnym)

0

<font size="2">Wiedziałem</span>, wiedziałem że zadanie jest podchwytliwe [rotfl] [rotfl] [rotfl]

Pomyśl co twój program zrobi jak dostanie na wejściu

0

a co powinien zrobić.

1 if i po sprawie.

edit: zapomniałem dodać: moja poprawka z endl nic nie zmienia - może być albo go nie być.

0

a no racja ;)

dzieki :)

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