记录编号 47616 评测结果 AAAAAA
题目名称 饲料调配 最终得分 100
用户昵称 GravatarTruth.Cirno 是否通过 通过
代码语言 C++ 运行时间 0.932 s
提交时间 2012-11-02 15:49:38 内存使用 3.15 MiB
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;

int a[4],b[4],c[4],rec[4];

void dfs(int deep,int rest,int ga,int gb,int gc)
{
	int i;
	if (deep==3)
	{
		bool flag=true;
		rec[3]=rest;
		ga+=rest*a[3];
		gb+=rest*b[3];
		gc+=rest*c[3];
		if (a[0]!=0)
			if (ga%a[0]!=0)
				flag=false;
		if (b[0]!=0)
			if (gb%b[0]!=0)
				flag=false;
		if (c[0]!=0)
			if (gc%c[0]!=0)
				flag=false;
		if (flag)
		{
			if (a[0])
				i=ga/a[0];
			else
			{
				if (b[0])
					i=gb/b[0];
				else
					i=gc/c[0];
			}
			if (i*b[0]==gb&&i*c[0]==gc)
			{
				cout<<rec[1]<<' '<<rec[2]<<' '<<rec[3]<<' '<<i<<endl;
				exit(0);
			}
		}
		return;
	}
	for (i=0;i<=rest;i++)
	{
		rec[deep]=i;
		dfs(deep+1,rest-i,ga+i*a[deep],gb+i*b[deep],gc+i*c[deep]);
	}
}

int main(void)
{
	freopen("ratios.in","r",stdin);
	freopen("ratios.out","w",stdout);
	int i;
	for (i=0;i<=3;i++)
		cin>>a[i]>>b[i]>>c[i];
	if (a[0]==0&&b[0]==0&&c[0]==0)
		cout<<"0 0 0 0\n";
	for (i=1;i<=600;i++)
		dfs(1,i,0,0,0);
	cout<<"NONE\n";
	return(0);
}