[ROIR 2023] 矩形分割 (Day 1)

Luogu
IDLGP10094
Time1000ms
Memory512MB
DifficultyP2
数学二分2023Special JudgeROIR(俄罗斯)
有一个大小为 $a\times b$ 的由单位方格组成的矩形,你需要通过 $k$ 次垂直或水平的切割将其分成 $m$ 个小矩形。小矩形大小不一定要相等。 每次切割不允许切割一半,必须从一边切到另外一边。只允许在网格线上进行切割。 ## Input 第一行输入一个整数 $t$,表示测试数据的组数。 接下来的 $t$ 行,每行一组测试数据。每组数据有四个整数 $a,b,k,m$,分别表示矩形的大小(长和宽),要求的切割次数和要求切成的小矩形数量。 ## Output 对于每组数据,在一行中输出能够将其切割成 $m$ 个小矩形的水平切割次数 $h$($0 \le h < a$)和垂直切割次数 $v$($0 \le v < b$)。如果可以以多种方式进行切割,则输出水平切割次数较少的方式。如果无法按要求进行切割,则输出 `-1`。 [samples] ## Background 翻译自 [ROIR 2023 D1T1](https://neerc.ifmo.ru/school/archive/2022-2023/ru-olymp-regional-2023-day1.pdf)。 ## Note 本题使用捆绑测试。 | 子任务编号 | 分值 | 特殊性质 | | :----------: | :----------: | :----------: | | $1$ | $18$ | $a=1$ | | $2$ | $19$ | $m\le10^5$ | | $3$ | $20$ | $1\le k\le10^5$ | | $4$ | $21$ | $m\le10^9$ | | $5$ | $22$ | 无 | 所有数据均满足 $1 \le t \le 100$,$1 \le a, b \le 10^9$,$0 \le k \le 2 \times 10^9$,$1 \le m \le 10^{18}$,且 $k < m$。
Samples
Input #1
3
2 2 1 2
1 2 2 3
3 5 5 12
Output #1
0 1
-1
2 3
API Response (JSON)
{
  "problem": {
    "name": "[ROIR 2023] 矩形分割 (Day 1)",
    "description": {
      "content": "有一个大小为 $a\\times b$ 的由单位方格组成的矩形,你需要通过 $k$ 次垂直或水平的切割将其分成 $m$ 个小矩形。小矩形大小不一定要相等。 每次切割不允许切割一半,必须从一边切到另外一边。只允许在网格线上进行切割。",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P2"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP10094"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "有一个大小为 $a\\times b$ 的由单位方格组成的矩形,你需要通过 $k$ 次垂直或水平的切割将其分成 $m$ 个小矩形。小矩形大小不一定要相等。\n\n每次切割不允许切割一半,必须从一边切到另外一边。只允许在网格线上进行切割。\n\n## Input\n\n第一行输入一个整数 $t$,表示测试数据的组数。\n\n接下来的 $t$ 行,每行一组测试数据。每组数据有四个整数 $a,b,k,m$,分别表示矩形的...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments