1005.txt

来自「浙大acm题答案,希望可以对学习acm的朋友有所帮助」· 文本 代码 · 共 107 行

TXT
107
字号
#include<stdio.h> 
int main() 
{ 
	int ca,cb,n,x,y; 
	while(scanf("%d %d %d",&ca,&cb,&n)!=-1) 
	{
		x=y=0; 
		while(1) 
		{
			printf("fill A\n"); 
			x=ca; 
			if(x==n) {printf("success\n");break;} 
			while(x>0) 
			{
				if((cb-y)>=x) 
				{
					printf("pour A B\n");y=y+x;x=0;
				} 
				 else 
					{printf("pour A B\n");x=x-(cb-y);y=cb;} 
				 if(x==n) {printf("success\n");break;} 
				if(y==n) break; 
				if(y==cb) 
					{printf("empty B\n");y=0;} 
			} 
			if(x==n) break; 
			if(y==n) {printf("success\n");break;} 
       
		} 
	} 

   return 0; 
}






#include <stdio.h>
int main()
{
int ca,cb,n;
while(scanf("%d %d %d",&ca,&cb,&n)!=EOF)
{
int nowA,nowB,leftCap; 
nowA=0,nowB=0,leftCap=0;
while(nowB!=n)
{
if(n>ca || n==cb-ca)
{
if(nowA==ca)
{
printf("empty A\n");
nowA=0;
}
else if(nowB==0)
{
printf("fill B\n");
nowB=cb;
}
else
{
printf("pour B A\n");
leftCap=ca-nowA;
if(leftCap>=nowB)
{
nowA+=nowB;nowB=0;
}
else
{
nowA=ca;nowB-=leftCap;
}
}
}
else if(n<=ca)
{
if(nowB==cb)
{
printf("empty B\n");
nowB=0;
}
else if(nowA==0)
{
printf("fill A\n");
nowA=ca;
}
else
{
printf("pour A B\n");
leftCap=cb-nowB;
if(leftCap>=nowA)
{
nowB+=nowA;nowA=0;
}
else
{
nowB=cb;nowA-=leftCap;
}
}
}
}
printf("success\n");
}
return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?