测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A5201. [GESP202409 六级] 算法学习

编程题 普及/提高-
知识点

题目描述

小杨计划学习 $m$ 种算法,为此他找了 $n$ 道题目来帮助自己学习,每道题目最多学习一次。

小杨对于 $m$ 种算法的初始掌握程度均为 $0$。第 $i$ 道题目有对应的知识点 $a_i$,即学习第 $i$ 道题目可以令小杨对第 $a_i$ 种算法的掌握程度提高 $b_i$。小杨的学习目标是对于 $m$ 种算法的掌握程度均至少为 $k$。

小杨认为连续学习两道相同知识点的题目是不好的,小杨想请你编写程序帮他计算出他最少需要学习多少道题目才能使得他在完成学习目标的同时避免连续学习两道相同知识点的题目。

输入格式

第一行三个正整数 $m, n, k$,代表算法种类数,题目数和目标掌握程度。
第二行 $n$ 个正整数 $a_1, a_2, ..., a_n$,代表每道题目的知识点。
第二行 $n$ 个正整数 $b_1, b_2, ..., b_n$,代表每道题目提升的掌握程度。

输出格式

输出一个整数,代表小杨最少需要学习题目的数量,如果不存在满足条件的方案,输出 -1。

输入输出样例

输入 #1
3 5 10
1 1 2 3 3
9 1 10 10 1
输出 #1
4
输入 #2
2 4 10
1 1 1 2
1 2 7 10
输出 #2
-1

说明/提示

### 样例 1 解释

一种最优学习顺序为第一道题,第三道题,第四道题,第二道题。

### 数据规模与约定

| 子任务编号 | 数据点占比 | $m$ | $n$ | $b_i$ | $k$ |
| :-: | :-: | :-: | :-: | :-: | :-: |
| $1$ | $30\%$ | $2$ | $\leq 9$ | $\leq 10$ | $\leq 10$ |
| $2$ | $30\%$ | $\leq 9$ | $\leq 9$ | $\leq 10$ | $\leq 10$ |
| $3$ | $40\%$ | $\leq 10^5$ | $\leq 10^5$ | $\leq 10^5$ | $\leq 10^5$ |

对于全部数据,保证有 $1 \leq m, n, b_i, k \leq 10^5$,$1 \leq a_i \leq m$。
上一题 去做题 下一题