P7905 黄牛の争
题目背景
Source:天空之城
本题背景中「黄牛」仅代指某游戏中的一种怪物,与一般含义的「[**黄牛**](https://baike.baidu.com/item/黄牛党/285883)」无关。
本题「推荐题目」三灰一黑,但不太能说明本题难度和他们差不多(
相传在很久很久之前梅兰德大陆上空漂浮着一座天空之城,是当时财富、力量、荣誉中心,突然有一天再也不见踪影。
如今已多个世纪不见痕迹的天空之城突然出现,王国的勇士去探索一番,但是飞船船票可不是那么好得到的。
**飞艇码头的船长是梅德龙 · 杜鲁夫,船长为了牟利要求大家必须 *买* *票* *上* *船*,没有票的旅行者无法登船。**
დ琢喵 作为一届黄牛的首领——黄牛党,派出了 $q$ 组黄牛买断了梅德龙 · 杜鲁夫的船票。
她以高价卖出这些船票,并通过差价获取巨额利润。
为维护飞艇码头的治安,梅德龙 · 杜鲁夫规定不允许人类和黄牛打架,当然船长并没有规定黄牛之间不可以打架。
题目描述
დ琢喵 的手下有两种黄牛:
1. I 类黄牛「攻击」为 $a$,「血量」为 $A$;
2. II 类黄牛「攻击」为 $b$,「血量」为 $B$。
黄牛之间的作战,满足以下条件:
1. 任意时刻,某一方「血量」$\le 0$ 时,其对手胜利;
2. 每一回合,「攻击」高者先手;
3. 每回合每方出手一次,造成的伤害即其「攻击」值。
构造的 III 类黄牛应当满足下面条件:
1. 「攻击」数值与 I 类黄牛和 II 类黄牛都不同;
2. I 类黄牛和 II 类黄牛作战 II 类黄牛胜利;(若输入不满足该条件则应直接输出 `-1 -1`)
3. II 类黄牛和 III 类黄牛作战 III 类黄牛胜利;
4. III 类黄牛和 I 类黄牛作战 I 类黄牛胜利。
请给出一种合法的构造。
---
**题意简述**
解方程:(若 $x=\text{true}$ 则 $[x]=1$ 反之 $=0$)
$$\begin{aligned}\left\lceil\frac{A}{b}\right\rceil&+[b
输入格式
**本题多测。**
第一行一个正整数 $q$。
接下来 $q$ 行,每行四个正整数 $a,A,b,B$。
数据满足 $a\ne b$。
输出格式
一共 $q$ 行,每行两个正整数表示你构造的 III 类黄牛的「攻击」数值和「血量」数值,无解时输出 `-1 -1`。
**本题采用 Special Judge,所有满足要求的解均给分。**
说明/提示
### 样例说明
对于样例 #1,可设 A 是 $(1,5)$,B 是 $(2,3)$,C 是 $(4,1)$。
其中二元组 $(x,y)$ 表示一个「攻击」为 $x$,「血量」为 $y$ 的黄牛。
下面的表格展现了 A、B、C 的对战情况,括号中的数字表示每回合开始时它们的「血量」数值。
| A 和 B 单挑 | B 和 C 单挑 | C 和 A 单挑 |
| :----------: | :----------: | :----------: |
| $\begin{aligned}&\texttt{A(5)~B(3)}\overset{\texttt{A-2~B-1}}{\Rightarrow\Rightarrow}\\&\texttt{A(3)~B(2)}\overset{\texttt{A-2~B-1}}{\Rightarrow\Rightarrow}\\&\texttt{A(1)~B(1)}\overset{\texttt{A-2}}{\Rightarrow}\\&\texttt{A}\le\texttt{0~\color{red}B win}\end{aligned}$ | $\begin{aligned}&\texttt{B(3)~C(1)}\overset{\texttt{B-4}}{\Rightarrow}\\&\texttt{B}\le\texttt{0~\color{red}C win}\end{aligned}$ | $\begin{aligned}&\texttt{A(5)~C(1)}\overset{\texttt{A-4~C-1}}{\Rightarrow\Rightarrow}\\&\texttt{C}\le\texttt{0~\color{red}A win}\end{aligned}$ |
因此输出剩下一类黄牛即给分。
对于样例 #2:钦定 III 类黄牛攻击力为 $11$,已经足以击倒 II 类黄牛,血量为 $11\sim14$ 都可以输给 I 类黄牛。
因此任意输出一组均给分。
对于样例 #3:II 类黄牛十分强大,难以再构造又能击败 II 类黄牛又能输给 I 类黄牛的 III 类黄牛品种。
因此输出 `-1 -1` 即给分。
### 数据规模
设 $M=\max\left(a,A,b,B\right)$:
- Subtask1(10pts):$M\le10,q=399\underline0$。
- Subtask2(20pts):$M\le100,q=399\underline1$,数据随机。
- Subtask3(10pts):$M\le10^5,q=99\underline2$,数据随机。
- Subtask4(20pts):$M\le10^5,q=99\underline3$。
- Subtask5(10pts):$q=399\underline4$,数据随机。
- Subtask6(30pts):$q=399\underline5$,无特殊限制。
- 本题根据数据强度设置了不同梯度的时间限制,如果有合理的满分做法被卡了请联系我。
提示:数据组数 $q$ **结尾** 的数字($\underline0,\underline1,\underline2,\underline3,\underline4,\underline5$)可能有助于你判断 Subtask 的类型。
对于 $100\%$ 的数据:$1\le q 9) print(x / 10);
putchar(x % 10 + '0');
}
void printsp(int x){
print(x), putchar(' ');
}
void println(int x){
print(x), putchar('\n');
}
char str[] = "E .in";
const int Buff = 3989;
std::string string;
namespace Data_Maker{
std::mt19937 rnd(time(0));
int rand(int l, int r) {
int x = r - l + 1;
return (rnd() % x + x) % x + l;
}
int a, A, b, B;
void maker(int subtaskID) {
int t = Buff + subtaskID;
if (3