请问在这个用C++怎么写?

给定N个无限容量且初始均空的水缸,每个水缸配有一个水桶用来打水,第 i 个水缸配备的水桶容量记作 bucket[i]。

有以下两种操作:
1,升级水桶:选择任意一个水桶,使其容量增加为 bucket[i]+1
2,蓄水:将全部水桶接满水,倒入各自对应的水缸

每个水缸对应最低蓄水量记作 vat[i],返回至少需要多少次操作可以完成所有水缸蓄水要求。

注意:实际蓄水量 达到或超过 最低蓄水量,即完成蓄水要求。

示例:
输入 bucket=[1,3],vat=[6,8](分别将各自元素cin即可,bucket和vat定义在程序内部)
输出 4
解释:第一次操作升级bucket[0],第2-4次操作都选择蓄水