⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usaco_3_2_4_ratios.cpp

📁 usaco自己做的1到5章的代码
💻 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 + -