📄 usaco_3_2_4_ratios.cpp
字号:
/*
ID: wangyuc2
PROB:ratios
LANG: C++
*/
/*
枚举啦,100^3,范围很小。
不过数据是非负的,所以包含0,而0的处理很恶心!!
为了这个零的处理,我提交了4次才过~~
*/
#include <fstream>
#include <iostream>
#include <string>
#include <memory>
#include <algorithm>
#include <bitset>
#define cin fin
using namespace std;
ifstream fin("ratios.in");
ofstream fout("ratios.out");
int main()
{
int a[5][5];
int b[6],c[6];
int i,j,k,m[5],t1,t2,t3,min=999999;
for(i=0;i<3;i++) cin>>a[i][3];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
cin>>a[j][i];
memset(m,0,sizeof(m));
for(i=0;i<100;i++)
for(j=0;j<100;j++)
for(k=0;k<100;k++){
memset(b,0,sizeof(b));
t2=0;
for(int t=0;t<3;t++)
b[t]=i*a[t][0]+j*a[t][1]+k*a[t][2];
if(b[0]==0 && a[0][3]!=0) continue;
if(b[1]==0 && a[1][3]!=0) continue;
if(b[2]==0 && a[2][3]!=0) continue;
if(a[0][3]==0 && b[0]!=0) continue;
if(a[1][3]==0 && b[1]!=0) continue;
if(a[2][3]==0 && b[2]!=0) continue;
if(a[0][3]!=0 && b[0]%a[0][3]!=0) continue;
if(a[0][3]!=0) {b[3]=b[0]/a[0][3];t2++;}
if(a[1][3]!=0 && b[1]%a[1][3]!=0) continue;
if(a[1][3]!=0) {b[4]=b[1]/a[1][3];t2++;}
if(a[2][3]!=0 && b[2]%a[2][3]!=0) continue;
if(a[2][3]!=0) {b[5]=b[2]/a[2][3];t2++;}
t1=b[3]+b[4]+b[5];
if(t1==0 && t2==0) {fout<<"0 0 0 0"<<endl; exit(0);}
t3=t1/t2;
if(b[3]!=0 && b[3]!=t1/t2) continue;
if(b[4]!=0 && b[4]!=t1/t2) continue;
if(b[5]!=0 && b[5]!=t1/t2) continue;
if(t1<min) {min=t1; c[0]=i;c[1]=j;c[2]=k;c[3]=t3;}
}
if(min<999999) fout<<c[0]<<' '<<c[1]<<' '<<c[2]<<' '<<c[3]<<endl;
else fout<<"NONE"<<endl;
//system("PAUSE");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -