QOJ.ac

QOJ

Límite de tiempo: 2 s Límite de memoria: 512 MB Puntuación total: 100 Hackeable ✓

#441. Przygotowywanie dań

Estadísticas

Kucharz zamierza przygotować dla dzieci $m$ dań, zużywając na każde z nich $k$ gramów składników. W tym celu kupił $n$ rodzajów składników, ponumerowanych od $1$ do $n$. Masa składnika rodzaju $i$ wynosi $d_i$ gramów. Łączna masa wszystkich $n$ rodzajów składników wynosi dokładnie $m \times k$ gramów, a $d_i$ i $k$ są dodatnimi liczbami całkowitymi.

Jeden rodzaj składnika można wykorzystać w wielu daniach. Aby jednak smak dań był bardziej wyrazisty, kucharz zamierza użyć w każdym daniu co najwyżej $2$ rodzajów składników. Ustal, czy istnieje sposób przygotowania dań spełniający wymagania. Dokładniej, musi on spełniać następujące warunki:

  • Należy przygotować łącznie $m$ dań.
  • Każde danie zawiera co najwyżej $2$ rodzaje składników.
  • Na każde danie zużywa się dokładnie $k$ gramów składników.
  • Masa każdego rodzaju składnika użytego w danym daniu jest dodatnią całkowitą liczbą gramów.
  • Wszystkie składniki każdego z $n$ rodzajów zostają zużyte w całości.

Jeżeli istnieje sposób spełniający wymagania, należy również podać jeden taki sposób.

Wejście

Dane należy odczytać z pliku dish.in.

Jeden plik testowy zawiera wiele zestawów danych.

Pierwszy wiersz zawiera liczbę całkowitą $T$, oznaczającą liczbę zestawów danych. Dla każdego zestawu:

  • Pierwszy wiersz zawiera trzy dodatnie liczby całkowite $n,m,k$, oznaczające odpowiednio liczbę rodzajów składników, liczbę dań do przygotowania oraz masę składników potrzebnych na każde danie.
  • Drugi wiersz zawiera $n$ liczb całkowitych. Liczba na pozycji $i$ oznacza masę $d_i$ składnika rodzaju $i$.

Wyjście

Wynik należy zapisać do pliku dish.out.

Dla każdego zestawu danych:

  • Jeżeli nie istnieje sposób przygotowania dań spełniający wymagania, wypisz w jednym wierszu liczbę całkowitą $-1$.
  • W przeciwnym przypadku wypisz $m$ wierszy, po jednym dla każdego dania. W zależności od liczby użytych rodzajów składników wiersz musi mieć jeden z dwóch poniższych formatów:

    • Dwie liczby całkowite $i$ oraz $x$, w tej kolejności, oznaczające, że danie przygotowuje się z $x$ gramów składnika rodzaju $i$. Muszą zachodzić warunki $1 \le i \le n$ oraz $x=k$.
    • Cztery liczby całkowite $i$, $x$, $j$ oraz $y$, w tej kolejności, oznaczające, że danie przygotowuje się z $x$ gramów składnika rodzaju $i$ oraz $y$ gramów składnika rodzaju $j$. Muszą zachodzić warunki $1 \le i,j \le n$, $i \ne j$, $x+y=k$ oraz $x,y>0$.

Poprawność odpowiedzi jest sprawdzana przez specjalny program weryfikujący, zatem jeżeli istnieje wiele poprawnych sposobów, wystarczy wypisać dowolny jeden z nich.

Zadbaj o poprawny format odpowiedzi: sąsiednie liczby w tym samym wierszu muszą być oddzielone pojedynczą spacją, a wyjście nie powinno zawierać żadnych innych zbędnych znaków.

Przykład

Wejście 1

4
1 1 10
10
4 3 100
80 30 90 100
5 3 1000
200 400 500 900 1000
6 4 100
25 30 50 80 95 120

Wyjście 1

1 10
1 80 2 20
2 10 3 90
4 100
-1
1 5 5 95
1 20 4 80
2 30 6 70
3 50 6 50

Uwagi

Dla drugiego zestawu danych jeden ze sposobów spełniających wymagania jest następujący:

  • Przygotuj pierwsze danie z $80$ gramów składnika rodzaju $1$ i $20$ gramów składnika rodzaju $2$.
  • Przygotuj drugie danie z $10$ gramów składnika rodzaju $2$ i $90$ gramów składnika rodzaju $3$.
  • Przygotuj trzecie danie ze $100$ gramów składnika rodzaju $4$.

Przykład 2

Zobacz pliki dish/dish2.in i dish/dish2.ans w katalogu zawodnika.

Przykład 3

Zobacz pliki dish/dish3.in i dish/dish3.ans w katalogu zawodnika.

Ograniczenia

Dla wszystkich testów:

$1 \le T \le 10$, $1 \le n \le 500$, $n-2 \le m \le 5000$, $m \ge 1$,

$1 \le k \le 5000$, $\sum_{i=1}^{n} d_i=m \times k$.

Szczegółowe ograniczenia dla poszczególnych testów podano w poniższej tabeli:

Numery testów $n$ $m$ $k$
$1$–$3$ $\le 4$ $\le 4$ $\le 50$
$4$–$5$ $\le 10$ $\le 10$ $\le 5000$
$6$–$7$ $\le 500$ $=n-1$
$8$–$9$ $n-1 \le m \le 5000$
$10$ $\le 25$ $\le 5000$
$11$–$12$ $\le 500$
$13$–$14$ $\le 50$
$15$–$17$ $\le 100$ $\le 5000$
$18$–$20$ $\le 500$

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.