USER: tian tianbing [tbbd4261]
TASK: ratios
LANG: C++
Compiling...
Compile: OK
Executing...
Test 1: TEST OK [0.043 secs, 3016 KB]
Test 2: TEST OK [0.032 secs, 3016 KB]
Test 3: TEST OK [0.032 secs, 3016 KB]
Test 4: TEST OK [0.022 secs, 3016 KB]
Test 5: TEST OK [0.022 secs, 3016 KB]
Test 6: TEST OK [0.032 secs, 3016 KB]
All tests OK.
Your program ('ratios') produced all correct answers! This is your
submission #18 for this problem. Congratulations!
Here are the test data inputs:
------- test 1 -------
5 8 0
3 5 4
1 3 0
6 2 0
------- test 2 -------
3 4 5
1 2 3
3 7 1
2 1 2
------- test 3 -------
20 22 24
4 5 5
9 5 6
12 12 14
------- test 4 -------
80 85 80
98 97 96
89 87 88
78 79 80
------- test 5 -------
99 99 99
1 0 0
0 1 0
0 0 1
------- test 6 -------
93 95 97
98 0 0
0 98 0
0 0 98
Keep up the good work!
Thanks for your submission!
直接枚举就能过了,提交了18次,不知道为什么用fin读不了,后来还是让同学帮我改成C的文件读入才过的
到现在还是不知道为什么。
要注意比例和饲料都是非负的小于100的,也就是说可能出现0的情况,要小心。
/*
ID:tbbd4261
PROG:ratios
LANG:C++
*/
#include<fstream>
#include <stdio.h>
using namespace std;
//fstream fin("ratios.in");
ofstream fout("ratios.out");
int main()
{
int food[4][4];
freopen("ratios.in","r",stdin);
freopen("ratios.out","w",stdout);
int i,j,k,minsum=0xffffff,a=0,b=0,c=0,d=0;
for(i=0; i<4; i++)
for(j=1; j<=3; j++)
scanf("%d",&food[i][j]);
int n1,n2,n3;
bool f1,f2,f=false;
for(i=0; i<=100; i++)
for(j=0; j<=100; j++)
for(k=0; k<=100; k++){
n1=food[1][1]*i+food[2][1]*j+food[3][1]*k;
n2=food[1][2]*i+food[2][2]*j+food[3][2]*k;
n3=food[1][3]*i+food[2][3]*j+food[3][3]*k;
int t=0; f1=false; f2=false;
if(food[0][1]==0){
f1=true;
if(n1!=0)continue;
}else{
if(n1%food[0][1]!=0)continue;
t=n1/food[0][1];
}
if(food[0][2]==0){
f2=true;
if(n2!=0)continue;
}else {
if(n2%food[0][2]!=0)continue;
if(f1==true)t=n2/food[0][2];
else if(n2/food[0][2]!=t)continue;
}
if(food[0][3]==0){
if(n3!=0)continue;
}else{
if(n3%food[0][3]!=0)continue;
if(f1&&f2)t=n3/food[0][3];
if((f1==false ||f2==false)&&n3/food[0][3]!=t)continue;
}
if( n1+n2+n3<minsum&&(n1||n2||n3)){
f=true;
minsum=n1+n2+n3;
a=i; b=j; c=k; d=t;
}
}
if(f) fout<<a<<' '<<b<<' '<<c<<' '<<d<<endl;
else fout<<"NONE"<<endl;
return 0;
}