记录编号 74362 评测结果 AAAAAA
题目名称 饲料调配 最终得分 100
用户昵称 Gravatarcstdio 是否通过 通过
代码语言 C++ 运行时间 0.057 s
提交时间 2013-10-24 22:15:39 内存使用 0.32 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
int x[4]={0},y[4]={0},z[4]={0};
int x0,y0,z0;
void read(void){
	scanf("%d%d%d",&x0,&y0,&z0);
	int i;
	for(i=1;i<=3;i++) scanf("%d%d%d",&x[i],&y[i],&z[i]);
}
bool check(int a,int b,int c){
	int nx,ny,nz;
	nx=x[1]*a+x[2]*b+x[3]*c;
	ny=y[1]*a+y[2]*b+y[3]*c;
	nz=z[1]*a+z[2]*b+z[3]*c;
	//x0/nx==y0/ny==z0/nz
	if(nx<x0) return false;
	if(ny<y0) return false;
	if(nz<z0) return false;
	if((!(x0*nx))&&(x0+nx)) return false;
	if((!(y0*ny))&&(y0+ny)) return false;
	if((!(z0*nz))&&(z0+nz)) return false;
	return x0*ny==y0*nx&&y0*nz==z0*ny;
}
int sum(int a,int b,int c){
	int ans=0;
	ans+=x[1]*a+x[2]*b+x[3]*c;
	ans+=y[1]*a+y[2]*b+y[3]*c;
	ans+=z[1]*a+z[2]*b+z[3]*c;
	return ans;
}
int anss=0x7fffffff,ansa,ansb,ansc;
int main(){
	freopen("ratios.in","r",stdin);
	freopen("ratios.out","w",stdout);
	read();
	int a,b,c,s;
	bool flag=false;
	for(a=0;a<100;a++){
		for(b=0;b<100;b++){
			for(c=0;c<100;c++){
				if(check(a,b,c)){
					flag=true;
					s=sum(a,b,c);
					if(s<anss){
						anss=s;
						ansa=a;
						ansb=b;
						ansc=c;
					}
				}
			}
		}
	}
	if(flag) printf("%d %d %d %d\n",ansa,ansb,ansc,anss/(x0+y0+z0));
	else printf("NONE\n");
	return 0;
}