uva 571 - Jugs

来源:互联网 发布:mysql 修改默认值 编辑:程序博客网 时间:2024/05/07 16:03

题目链接:uva 571 - Jugs


题目大意:给出A,B和aid,A表示小杯的容量,B表示大杯的容量,aid表示要求大杯中剩余的水量,有无限的水,给出方案,(A和B互质)


解题思路:A和B互质就说明了一定有解,因为它们的最大公约数为1。然后方案无非就是有四步组成,考虑清楚四总移动的条件就可以了。


#include <stdio.h>#define max(a,b) (a)<(b)?(a):(b)int main() {int A, B, a, b, aid;while (scanf("%d%d%d", &A, &B, &aid) == 3) {a = b = 0;while (1) {if (b == aid) {printf("success\n");break;}else if (b == B) {printf("empty B\n");b = 0;}else if (a == 0) {printf("fill A\n");a = A;}else {printf("pour A B\n");int c = max(B - b, a);b += c;a -= c;}}}return 0;}


原创粉丝点击