0
点赞
收藏
分享

微信扫一扫

USACO Section 1.4 Mother's Milk - 输出错了好几次..

hwwjian 2022-08-12 阅读 8


    就是不断搜索倒牛奶的过程..用一个三维数组来判重就可以了....

    恶心的输入或者是我不适应~~末尾多了空格报错...每个文件只有一组数据...输出一行后还必须打个\n....呃...

Program:

/*  
ID: zzyzzy12
LANG: C++
TASK: milk3
*/
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
#include<queue>
using namespace std;
int ans[201],num,A,B,C;
bool f[21][21][21];
void search(int a,int b,int c)
{
if (f[a][b][c]) return;
f[a][b][c]=true;
if (!a)
{
num++;
ans[num]=c;
}
if (a+b>B) search(a-B+b,B,c); else search(0,a+b,c);
if (a+c>C) search(a-C+c,b,C); else search(0,b,a+c);
if (b+a>A) search(A,b-A+a,c); else search(b+a,0,c);
if (b+c>C) search(a,b-C+c,C); else search(a,0,c+b);
if (c+a>A) search(A,b,c-A+a); else search(a+c,b,0);
if (c+b>B) search(a,B,c-B+b); else search(a,c+b,0);
}
int main()
{
freopen("milk3.in","r",stdin);
freopen("milk3.out","w",stdout);
memset(f,false,sizeof(f));
num=0;
scanf("%d%d%d",&A,&B,&C);
search(0,0,C);
sort(ans+1,ans+1+num);
for (int i=1;i<num;i++) printf("%d ",ans[i]);
printf("%d\n",ans[num]);
return 0;
}



举报

相关推荐

0 条评论