Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Talent tex update #18

Merged
merged 15 commits into from
Jul 21, 2024
109 changes: 60 additions & 49 deletions example_package/README.md
adespawn marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
Expand Up @@ -3,38 +3,39 @@

# **Szablon paczki**

- [**Ogólne informacje**](#ogólne-informacje)
- [**doc**](#doc)
- [**talentTex.cls**](#talenttexcls)
- [**prog**](#prog)
- [**Rozwiązania**](#rozwiązania)
- [**ingen**](#ingen)
otargowski marked this conversation as resolved.
Show resolved Hide resolved
- [**inwer**](#inwer)
- [**checkerka**](#checkerka)
- [**oi.h**](#oih)
- [**Scanner (Wczytywanie)**](#scanner-wczytywanie)
- [Są 3 tryby wczytywania danych](#są-3-tryby-wczytywania-danych)
- [**Najważniejszą funkcją jest wczytywanie** i realizuje ją w następujący sposób](#najważniejszą-funkcją-jest-wczytywanie-i-realizuje-ją-w-następujący-sposób)
- [**CheckerVerdict**](#checkerverdict)
- [**checker\_test**](#checker_test)
- [**InwerVerdict**](#inwerverdict)
- [**bug**](#bug)
- [**oi\_assert**](#oi_assert)
- [**Random**](#random)
- [in i out](#in-i-out)
- [Testy ocen](#testy-ocen)
- [Generowanie](#generowanie)
- [dlazaw](#dlazaw)
- [attachment](#attachment)
- [**config.yml**](#configyml)
- [Interactive tasks](#interactive-tasks)
- [Time](#time)
- [Memory](#memory)
- [Title](#title)
- [Scores](#scores)
- [Task ID](#task-id)
- [Contest type](#contest-type)
- [Expected scores](#expected-scores)
- [**Szablon paczki**](#szablon-paczki)
- [**Ogólne informacje**](#ogólne-informacje)
- [**doc**](#doc)
- [**talentTex.cls**](#talenttexcls)
- [**prog**](#prog)
- [**Rozwiązania**](#rozwiązania)
- [**ingen**](#ingen)
- [**inwer**](#inwer)
- [**checkerka**](#checkerka)
- [**oi.h**](#oih)
- [**Scanner (Wczytywanie)**](#scanner-wczytywanie)
- [Są 3 tryby wczytywania danych](#są-3-tryby-wczytywania-danych)
- [**Najważniejszą funkcją jest wczytywanie** i realizuje ją w następujący sposób](#najważniejszą-funkcją-jest-wczytywanie-i-realizuje-ją-w-następujący-sposób)
- [**CheckerVerdict**](#checkerverdict)
- [**checker\_test**](#checker_test)
- [**InwerVerdict**](#inwerverdict)
- [**bug**](#bug)
- [**oi\_assert**](#oi_assert)
- [**Random**](#random)
- [in i out](#in-i-out)
- [Testy ocen](#testy-ocen)
- [Generowanie](#generowanie)
- [dlazaw](#dlazaw)
- [attachment](#attachment)
- [**config.yml**](#configyml)
- [Interactive tasks](#interactive-tasks)
- [Time](#time)
- [Memory](#memory)
- [Title](#title)
- [Scores](#scores)
- [Task ID](#task-id)
- [Contest type](#contest-type)
- [Expected scores](#expected-scores)

## **Ogólne informacje**

Expand Down Expand Up @@ -65,29 +66,39 @@ Jest to klasa używana w plikach `.tex`.
Nadaje ona odpowiedni wygląd dokumentom.
Automatycznie tworzy ona nagłówki i stopki.
Wystarczy że stworzymy treść dokumentu pomiędzy znacznikami `\start` i `\finish`.
Dodatkowo udostępnia następujące funkcje:
Dodatkowo udostępnia następujące funkcje.
Zmienne podane w `{}` są obowiązkowe a w `[]` są opcjonalne, można ich nie podawać wcale lub tylko jakiś prefiks.
Czyli na przykład `\img{a}` lub `\img[0.5]{a}` lub `\img[0.5][obrazek 1]{a}`.
adespawn marked this conversation as resolved.
Show resolved Hide resolved

- `\tc{n}` - Stylizuje podany tekst na talentowy kolor.
- `\plainimg{img1.jpg}` - Wstawia obrazek o podanej ścieżce.
- `\img{img1.jpg}{opis}{t/b}` - Wstawia obrazek o podanej ścieżce z opisem u góry lub na dole.
Można też `\timg{img1.jpg}{opis}`, `\bimg{img1.jpg}{opis}`.
- `\start{}` - Rozpoczyna treść, musi być na samym początku treści dokumentu.
- `\finish{}` - Kończy treść, musi być na samym końcu treści dokumentu.
- `\start` - Rozpoczyna treść, musi być na samym początku treści dokumentu.
adespawn marked this conversation as resolved.
Show resolved Hide resolved
- `\finish` - Kończy treść, musi być na samym końcu treści dokumentu.
adespawn marked this conversation as resolved.
Show resolved Hide resolved
- `\tSection{text}` - Nagłówek w stylu talentu.
- `\tCustomSection{text}{0pt}` - Nagłówek w stylu talentu, z możliwością ustawienia odstępu od poprzedniego akapitu.
- `\tSmallSection{text}` - Mały nagłówek w stylu talentu.
- `\makecompactexample{id}` - dodaje automatycznie test "abc0{id}" z paczki, wejście i wyjście będą obok siebie.
- `\makestandardexample{id}` - dodaje automatycznie test "abc0{id}" z paczki, wejście i wyjście będą pod sobą.

Przy kompilacji testy są automatycznie czytane z folderów ./in i ./out.
Należy się upewnić, że są one wygenerowane w momencie kompilacji treści.
Te polecenia również tworzą nagłówek "Wejście" i "Wyjście".

- `\ocen{\testOcen{}{} ...}` - Lista wszystkich testów ocen.
- `\example[h/v]{id}` - Wstawia test przykłądowy "zad0id" z paczki.
abc0.in -> \example{}, abc0xy.in -> \example{xy}, abc0x.in -> \example[v]{x}.
Opcjonalnie można dodać położenie testów, 'h' - horyzontalnie, 'v' - pionowo, domyślnie jak się nie poda jest h.
adespawn marked this conversation as resolved.
Show resolved Hide resolved
Przy kompilacji testy są automatycznie czytane z folderów ./in i ./out, więc upewnij się że się tam znajdują.
Te polecenia również tworzą nagłówek "Wejście" i "Wyjście".
- `\ocen{ \testOcen{}{}...}` - Lista wszystkich testów ocen.
- `\testOcen{nazwa_testu}{opis_testu}` - Pojedynczy test ocen z opisem.
- `\ocenTable{}` - Tworzy tabelę z podzadaniami. Automatycznie tworzy nagłówek (Nr & Ograniczenia & Punkty).
- `\ocenRow{nr & opis & punkty}` - Pojedynczy wiersz tabeli: kolejne komórki powinny być rozdzielone znakiem &.
Jeśli chcesz mieć 2 linie w pojedynczej komórce tabeli użyj `\ocenElement{text}`.
- `\subtaskTable{ \subtask{}{}... }` - Tworzy tabelę z podzadaniami.
Jako argumenty należy przekazać `\subtask{}{}`, dla każdego podzadania.
Komenda sprawdzi czy punkty sumują się do podanej opcjonalnie ilości punktów (domyślnie 100) a jak nie to wyświetli błąd.
adespawn marked this conversation as resolved.
Show resolved Hide resolved
Automatycznie tworzy nagłówek (Nr & Ograniczenia & Punkty).
- `\subtask{punkty}{ograniczenie}` - Tworzy pojedynczy wiersz tabeli opisujący podzadanie z podaną ilością punktów i danym ograniczeniem.
- `\twocol{}{}` `\twocol[szerokość1][przerwa][t/b/c]{kolumna1}{kolumna2}` - Tworzy 2 kolumny z podaną zawartością.
Opcjonalnie można podać ułamek szerokości pierwszej kolumny (domyślnie 0.5), ułamek szerokości przerwy ( domyślnie0).
otargowski marked this conversation as resolved.
Show resolved Hide resolved
Szerokość 2 kolumny dopełni się do całości. Oraz opcjonalnie wybrać łączenie lini bazowej (domyślnie t).
otargowski marked this conversation as resolved.
Show resolved Hide resolved
- `\imgt[szerokość]{plik}{opis}` - Wstawia zdjęcie z opisem u góry. Można opcjonalnie zmienić szerokość zdjęcia (0.8).
- `\imgb[szerokość]{plik}{opis}` - Wstawia zdjęcie z opisem na dole. Można opcjonalnie zmienić szerokość zdjęcia (0.8).
- `\img{plik}` % `\img[szerokość][opis][t/b]{plik}` - Wstawia zdjęcie. Można opcjonalnie zmienić szerokość zdjęcia (0.8).
adespawn marked this conversation as resolved.
Show resolved Hide resolved
Pozostałe 2 parametry tworzą opis jak polecenia \imgb i \imgt gdzie t i b to góra lub dół.
- `\title{} \id{}` - Ustawiają tytuł i id. Są obowiązkowe.
- `\contest{}` - Wyświetlany w nagłówku nazwe konkursu.
otargowski marked this conversation as resolved.
Show resolved Hide resolved
- `\day{} \round{} \group{}` - Wyświetla się w nagłówku. Automatycznie dodaje przed nazwe (np \day{2} -> Dzień: 2)
- `\Memory[]{} \Time[]{}` - Też się wyświetla z nazwą. Dodatkowo dodaje jednostkę którą opcjonalnie można zmienić.

## **prog**

Expand Down
Binary file modified example_package/doc/abcopi.pdf
Binary file not shown.
Binary file modified example_package/doc/abcopr.pdf
Binary file not shown.
Binary file modified example_package/doc/abczad.pdf
Binary file not shown.
109 changes: 61 additions & 48 deletions example_package/doc/abczad.tex
Original file line number Diff line number Diff line change
Expand Up @@ -2,98 +2,111 @@

\title{Przykładowy tytuł zadania}
\id{abc}
\iomode{stdin} % stdin
\Memory{256} % w MB
\Time{2,4} % w sekundach
\group{A}
\konkurs{SKN 2023/24}
\day{Runda 17}

%%%%%%%%%%%%%%%%%%
% Przydatne komendy:
% \pagebreak % komenda zaczynająca nową stronę pdfa
% ~ % słowa oddzielone '~' zamiast ' ' w~taki sposób będą zawsze koło siebie
% $text_mat$ % pozwala na pisanie wyrażeń matematycznych
% Dokumentacja:
% https://www.overleaf.com/learn

%%%%%%%%%%%%%%%%%%
% Komendy talentowe
% \start{} % Rozpoczyna treść, musi być na samym początku treści zadania.
% \finish{} % Kończy treść, musi być na samym końcu treści zadania.
% \tSection{text} % Nagłówek w stylu talentu.
% \tCustomSection{text}{xpt} % Nagłówek w stylu talentu, z możliwością ustawienia odstępu 'x' od poprzedniego akapitu.
% \tSmallSection{text} % Mały nagłówek w stylu talentu.
% \tc{text} % Styl używany do oznaczania zmiennych.
% \makecompactexample{id} % 2 style dodawania automatycznie testów "zad0{id}" z paczki.
% \makestandardexample{id} % compact - obok siebie, standard - pod sobą.
% % Przy kompilacji testy są automatycznie czytane z folderów ./in i ./out
% \ocen{text} % Lista wszystkich testów ocen.
% \testOcen{text}{text2} % Pojedyńczy test ocen z opisem.
% \ocenTable{text} % Tabela z podzadaniami.
% \ocenRow{text} % Pojedyńczy wiersz tabeli: kolejne komórki powinne być rodzielone znakiem &.
% \ocenElement{text} % Jeśli chcesz mieć 2 linie w pojedyńczej komórce tabeli.
\contest{SKN 2023/24}
\day{}
adespawn marked this conversation as resolved.
Show resolved Hide resolved
\round{17}
\group{A}
\Memory[MB]{256}
\Time[s]{2,4}

\start{}

Lorem ipsum dolor ssist amdet, consectetur adipiscing elit.
Donec rhoncus torstor vitae lorem luctus maximus.
Donec bibendum, dui eget diganissim viverra, lectus leo scelerisque metus, ut sagittis ligula nisl ut purus.
Etiam imperdiet luctus leo, et molestie diam congue auctor. Sed sapien eros, imperdiet in fermentum $\tc{a}$, faucibus ut ex cośtam.
% pusta linijka, by zacząć akapit od wcięcia
Etiam imperdiet luctus leo, et molestie diam congue auctor.
Sed sapien eros, imperdiet in fermentum \tc{a}, faucibus ut ex cośtam cośtam.

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Donec rhoncus tortor vitae lorem luctus maximus.

\tSection{Wejście}

W pierwszym wierszu standardowego wejścia znajduje się jedna liczba $\tc{n}$ ($1\leq \tc{n}\leq 1\ 000\ 000$), oznaczająca parametr z~wejścia.
W pierwszym wierszu standardowego wejścia znajduje się jedna liczba \tc{n} ($1 \leq \tc{n} \leq 10^6$), oznaczająca parametr z~wejścia.
W drugim wierszu znajduje się \tc{n} liczb $\tc{a_i}$ $(1 \leq \tc{n} \leq 10^6)$.

\tSection{Wyjście}

Lorem ipsum dolor ssist amdet, consectetur adipiscing elit.
Donec rhoncus torstor vitae lorem luctus maximus.
Donec bibendum, dui eget diganissim viverra, lectus leo scelerisque metus, ut sagittis ligula nisl ut purus.

W pierwszym wierszu wyjścia powinna znajdować się jedna liczba $\tc{z}$, wynik z zadania.
W pierwszym wierszu wyjścia powinna znajdować się jedna liczba, wynik z zadania.

\tSection{Przykład}

\makestandardexample{a} % abc0.in -> {}, abc0x.in -> {x}
\makecompactexample{a} % testy muszą być wygenerowane więc użyj st-make ingen outgen
\example[v]{a}
\example[h]{a}
\example{a}

\tCustomSection{Wyjaśnienie przykładów}{5pt}
\tSection{Wyjaśnienie przykładów}

\tSmallSection{Przykład 1}

Lorem ipsum dolor ssist amdet, consectetur adipiscing elit.
Lorem ipsum dolor ssist amdet, consectetur adipiscing elit.
Donec rhoncus torstor vitae lorem luctus maximus.
Donec bibendum, dui eget diganissim viverra, lectus leo scelerisque metus, ut sagittis ligula nisl ut purus.

\tSmallSection{Przykład 2}

Lorem ipsum dolor ssist amdet, consectetur adipiscing elit.
Lorem ipsum dolor ssist amdet, consectetur adipiscing elit.

\tSection{Testy ocen}

\tSection{Testy ocen:}
\ocen{
\testOcen{1ocen}{$\tc{n} = 69$, Założenie jakieś}
\testOcen{2ocen}{$\tc{n} = 420$, założenie jakieś 2}
\testOcen{0b}{$\tc{n} = 420$, założenie jakieś 2}
}

\tSection{Ocenianie}

Zestaw testów dzieli się na następujące podzadania.
Testy do każdego podzadania składają się z jednej lub większej liczby osobnych grup testów.

% Alternatywnie \customOcenTable{|c|c|c|}{\tc{Nr} & \tc{Ograniczenia} & \tc{Punkty}}{reszta tabeli}

\ocenTable{
\ocenRow{1 & $\tc{n} \leq 100$ & 30}
\ocenRow{2 & \ocenElement{$\tc{n} \leq 1000$ Dwie\\ Linie} & 20}
\ocenRow{3 & Bez ograniczeń & 50}
\subtaskTable{
\subtask{30}{$\tc{n} \leq 100$}
\subtask{20}{$\tc{n} \leq 1000$ Dwie\\ Linie}
\subtask{50}{Bez ograniczeń}
}

\finish{}

%%%%%%%%%%%%%%%%%%
% Przydatne komendy:
% \pagebreak % komenda zaczynająca nową stronę pdfa
% ~ % słowa oddzielone '~' zamiast ' ' w~taki sposób będą zawsze koło siebie
% pusta linijka (lub \par) rozpoczyna nowy akapit.
% \footnote{text} tworzy adnotację na dole strony do miejsca w którym użyto.
% \color{color}{text} koloruje tekst
% \vspace{5pt} tworzy odstęp.
% $text_mat$ % pozwala na pisanie wyrażeń matematycznych
% Dokumentacja:
% https://www.overleaf.com/learn

%%%%%%%%%%%%%%%%%%
% Komendy talentowe:
% \start{} % Rozpoczyna treść, musi być na samym początku treści zadania.
% \finish{} % Kończy treść, musi być na samym końcu treści zadania.
adespawn marked this conversation as resolved.
Show resolved Hide resolved
% \tSection{text} % Nagłówek w stylu talentu.
% \tSmallSection{text} % Mały nagłówek w stylu talentu.
% \tc{text} % Styl używany do oznaczania zmiennych.
% \example[h/v]{id} % Wstawia test przykłądowy "zad0id" z paczki.
% abc0.in -> \example{}, abc0xy.in -> \example{xy}, abc0x.in -> \example[v]{x}.
% Opcjonalnie można dodać położenie testów, 'h' - horyzontalnie, 'v' - pionowo, domyślnie jak się nie poda jest h.
% Przy kompilacji testy są automatycznie czytane z folderów ./in i ./out, więc upewnij się że się tam znajdują.
% \ocen{ \testOcen{}{}... } % Lista wszystkich testów ocen, podajemy do niej komendy \testOcen{}{}.
% \testOcen{test}{text} % Pojedyńczy test ocen z opisem. Podajesz nazwe testu (1ocen, 0c, 2ocen) i opis
% \subtaskTable[point]{ \subtask{}{}... } % Tworzy tabelę z podzadaniami, podajemy do niej komendy \subtask{}{}.
% Sprawdzi czy punkty sumują się do podanej opcjonalnie ilości punktów (domyślnie 100) a jak nie to wyświetli błąd.
% \subtask{point}{text} % Tworzy pojedyńczy wiersz tabeli opisujący podzadanie, o danej ilości punktów i z danym ograniczeniem.
% \twocol{}{} % \twocol[szerokość1][przerwa][t/b/c]{kolumna1}{kolumna2} % Tworzy 2 kolumny z podaną zawartością.
% Opcjonalnie można podać ułamek szerokości pierwszej kolumny (domyślnie 0.5), ułamek szerokości przerwy ( domyślnie0).
% Szerokość 2 kolumny dopełni się do całości. Oraz opcjonalnie wybrać łączenie lini bazowej (domyślnie t).
% \imgt[szerokość]{plik}{opis} % Wstawia zdjęcie z opisem u góry. Można opcjonalnie zmienić szerokość zdjęcia (0.8).
% \imgb[szerokość]{plik}{opis} % Wstawia zdjęcie z opisem na dole. Można opcjonalnie zmienić szerokość zdjęcia (0.8).
% \img{plik} % \img[szerokość][opis][t/b]{plik} % Wstawia zdjęcie. Można opcjonalnie zmienić szerokość zdjęcia (0.8).
% Pozostałe 2 parametry tworzą opis jak polecenia \imgb i \imgt gdzie t i b to góra lub dół.
% \title{} \id{} % Ustawiają tytuł i id. Są obowiązkowe.
% \contest{} % Informuje jaki nazywa się kontest i jest wyświetlany w nagłówku.
% \day{} \round{} \group{} % Wyświetla się w nagłówku. Automatycznie dodaje przed nazwe (np \day{2} -> Dzień: 2)
% \Memory[]{} \Time[]{} % Też się wyświetla z nazwą. Dodatkowo dodaje jednostkę którą opcjonalnie można zmienić.
Loading
Loading