QOJ.ac

QOJ

実行時間制限: 2 s メモリ制限: 512 MB 満点: 100 ハック可能 ✓

#441. 整餸

統計

廚師準備整 $m$ 道菜畀小朋友食,每道菜都用 $k$ 克原材料。為咗噉,廚師買咗 $n$ 種原材料,原材料由 $1$ 到 $n$ 編號,第 $i$ 種原材料嘅質量係 $d_i$ 克。$n$ 種原材料嘅總質量啱啱好係 $m\times k$ 克,而且 $d_i$ 同 $k$ 都係正整數。

整菜嗰陣,一種原材料可以用喺多道菜入面,但為咗令菜嘅味道更純粹,廚師打算每道菜最多用 2 種原材料。而家請你判斷有冇一個符合要求嘅製作方案。具體嚟講,方案要符合以下要求:

  • 總共整出 $m$ 道菜。
  • 每道菜最多用 2 種原材料。
  • 每道菜啱啱好用 $k$ 克原材料。
  • 每道菜用到嘅每種原材料,質量都要係正整數克。
  • $n$ 種原材料都要啱啱好用晒。

如果有符合要求嘅製作方案,你仲要畀出一個具體方案。

輸入格式

由檔案 dish.in 讀入資料。

本題每個測試點都有多組測試資料。

第一行有一個整數 $T$,表示資料組數。對於每組資料:

  • 第一行有三個正整數 $n,m,k$,分別表示原材料種類數、要整嘅菜嘅數目,同每道菜要用嘅原材料質量。
  • 第二行有 $n$ 個整數,第 $i$ 個整數表示第 $i$ 種原材料嘅質量 $d_i$。

輸出格式

輸出到檔案 dish.out。

對於每組測試資料:

  • 如果冇符合要求嘅製作方案,就輸出一行,入面係整數 $-1$。
  • 否則,你要輸出 $m$ 行,每行表示一道菜嘅製作方案。根據用到嘅原材料種類數,格式係以下兩種之一:

    • 喺同一行依次輸出兩個整數 $i$ 同 $x$,表示呢道菜用 $x$ 克第 $i$ 種原材料整成。你要保證 $1\le i\le n$、$x=k$。
    • 喺同一行依次輸出四個整數 $i,x,j,y$,表示呢道菜用 $x$ 克第 $i$ 種原材料同 $y$ 克第 $j$ 種原材料整成。你要保證 $1\le i,j\le n$、$i\ne j$、$x+y=k$、$x,y>0$。

本題用自訂校驗器檢查答案啱唔啱,所以如果有多個符合條件嘅方案,你只需要輸出其中任何一個。

你要保證方案嘅輸出格式正確,同一行相鄰嘅兩個數之間用一個空格分隔。除此之外,輸出唔應該有其他多餘字元。

樣例

輸入格式 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

輸出格式 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

說明

對於第二組資料,一個符合要求嘅製作方案係:

  • 用 80 克原材料 1 同 20 克原材料 2 整第一道菜。
  • 用 10 克原材料 2 同 90 克原材料 3 整第二道菜。
  • 用 100 克原材料 4 整第三道菜。

樣例 2

見選手目錄入面嘅 dish/dish2.in 同 dish/dish2.ans。

樣例 3

見選手目錄入面嘅 dish/dish3.in 同 dish/dish3.ans。

資料範圍

對於所有測試點:

$1\le T\le10$、$1\le n\le500$、$n-2\le m\le5000$、$m\ge1$、$1\le k\le5000$、$\sum_{i=1}^n d_i=m\times k$。

每個測試點嘅具體限制見下表:

測試點編號 $n$ $m$ $k$
$1\sim3$ $\le4$ $\le4$ $\le50$
$4\sim5$ $\le10$ $\le10$ $\le5000$
$6\sim7$ $\le500$ $=n-1$
$8\sim9$ $n-1\le m\le5000$
$10$ $\le25$ $\le5000$
$11\sim12$ $\le500$
$13\sim14$ $\le50$
$15\sim17$ $\le100$ $\le5000$
$18\sim20$ $\le500$

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.