Zasady wysyłania programów

Rozwiązanie zadania powinno składać się z jednego pliku zawierającego tekst źródłowy programu napisanego w języku C/C++. Plik źródłowy powinien posiadać rozszerzenie ".cpp".

Plik źródłowy należy przesłać korzystając z odsyłacza umieszczonego pod treścią zadania. Po poprawnym przyjęciu programu źródłowego zostanie on automatycznie skompilowany i przetestowany. Jeśli program nie kompiluje się serwer odmówi przyjęcia pliku źródłowego. Każde zadanie ma określony maksymalny czas wykonania, limit dostępnej pamięci i biblioteki, których można używać.

Wymagania stawiane programom

Każdy program powinien odczytywać dane ze standardowego wejścia (z klawiatury) i zapisywać wyniki na swoje standardowe wyjście (na ekran). Program musi działać wsadowo, tzn. po uruchomieniu powinien wczytać dane z klawiatury, obliczyć żadany wynik i wypisać go na ekranie. Program nie może oczekiwać innych danych niż te, które określono w specyfikacji wejścia, ani też wypisywać innych wyników czy wartości oprócz wymaganych przez specyfikację wyjścia.
Program nie może oczekiwać jakiejkolwiek ingerencji użytkownika, np. oczekiwać naciśnięcia klawisza w celu rozpoczęcia obliczeń czy zakończenia programu. Niedozwolone jest dołączenie do programu żadnych innych bibliotek niż te, których nazwy podano pod treścią zadania.

Program od momentu uruchomienia ma do dyspozycji określony czas na wykonanie - domyślnie 0.25 sekundy na każdy test. W tym czasie program powinien wczytać dane, wypisać obliczony wynik i zakończyć swoje działanie, zwracając tzw. kod wyjścia (return 0) równy zero.

Ostatnia wypisana przez program linia danych powinna kończyć się znakiem nowej linii.

Zasady oceny prac

Wysłany program zostanie sprawdzony na zestawie 20 testów danych wejściowych. Jeśli program udzieli poprawnej odpowiedzi, to autor otrzymuje 1 punkt za taki test. Za każde zadanie można otrzymać maksymalnie 20 punktów. Zestawy testowe są generowane dynamicznie, można więc przyjąć, że za każdym razem są inne.

Jeśli po upływie czasu przeznaczonego na wykonanie program nadal będzie działał, to zostanie przerwany, a sam test oceniony jako niezaliczony.

Podobnie niezaliczony będzie test, jeśli program zwróci kod wyjścia różny od zera lub też nie wypisze znaku nowej linii po ostatniej linii wyjścia.

Wskazówki

Dane wejściowe przekazywane programowi podczas sprawdzania zawsze są poprawne, tzn. zgodne ze specyfikacją wejścia. Jeżeli każdy wiersz wejścia zawiera jedną liczbę, to jej pierwsza cyfra lub znak "-" jest zawsze pierwszym znakiem w linii, zaś ostatnia cyfra znakiem ostatnim przed znakiem nowej linii.
Jeśli wiersz pliku wejścia zawiera kilka liczb, to zawsze są one oddzielone dokładnie jedną spacją. Z poprawności wejścia wynika w szczególności, że liczby zapisane są poprawnie i mogą być wczytywane bezpośrednio do zmiennych numerycznych.

Twój program musi wygenerować plik wyjściowy trzymając się powyższych reguł. Nigdy nie należy zapisywać znaków spacji ani na końcu, ani na początku linii. Jeśli należy oddzielić liczby od siebie w wierszu, to zawsze powinno to być wykonane przy pomocy jednej spacji. Liczb całkowitych nie należy zapisywać w postaci z kropką, np. 12.0, a do obliczeń na liczbach rzeczywistych używać zawsze typu double.

Ostatnia linia wyjścia zawsze musi być zakończona znakiem nowej linii - zawsze wypisuj nową linie w ostatnim wierszu wyjścia. Staraj się przede wszystkim dbać o poprawność algorytmu - tylko bowiem poprawne rozwiązania zagwarantują ci komplet punktów.

Przykład poprawnie napisanego programu

Zadanie

Dane są dwie liczby całkowite. Napisz program, który wyznaczy ich sumę oraz iloczyn.

Wejście

W pierwszej i jedynej linii wejścia zapisano dwie liczby całkowite a i b z zakresu 0..10000, oddzielone pojedynczą spacją.

Wyjście

Wyjście powinno zawierać w pierwszej linii sumę a+b, w linii drugiej zakończonej znakiem nowej linii wartość iloczynu a*b.

#include<iostream>

using namespace std;

int main(int argc, char** argv)
{
  int a, b;
  long long w;
  
  cin>>a>>b;
  w = a * b;
  
  cout<<a+b<<endl;
  cout<<w<<endl;
  
  return 0;
}

... powodzenia!!