比赛 20140714上午练习 评测结果 C
题目名称 荷斯坦奶牛 最终得分 0
用户昵称 1azyReaper 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2014-07-14 11:14:09
显示代码纯文本
#include <iostream>  
#include <fstream>  
#include <string>   
#include <cmath>
using namespace std;  
ifstream fin("holstein.in");
ofstream fout("holstein.out");
int main()  
{  
    int v,g;  
    int i,j,k;  
    int r[100];  
    int s[50][50];  
	fin>>v;  
    for(i=0;i<v;i++)  
		fin>>r[i];  
    fin>>g;  
    for(i=0;i<g;i++)  
        for(j=0;j<v;j++)  
			fin>>s[i][j];  
    int m=pow(2.0,(double)g);  
    int resn=100,ress=1000000;  
    for(i=1;i<m;i++)  
    {  
        int tempr[100];  
        memset(tempr,0,sizeof(tempr));  
        int tempn=0;  
        int temp=i;  
        for(j=0;j<g;j++)  
        {  
            if(temp&1)  
            {  
				for(k=0;k<v;k++)  
				{  
					tempr[k]+=s[j][k];  
                  
				}  
				tempn++;  
            }  
            if(tempn>resn)
				break;  
			temp=temp>>1;
        }  
        bool flag=false;  
        for(k=0;k<v;k++)  
		{  
			if(tempr[k]<r[k])  
			{ 
				flag=true;  
                break;  
			}  
		}    
        if(flag==false&&((tempn<resn)||((tempn==resn)&&(i<ress))))  
        {  
			resn=tempn;  
            ress=i;  
        }   
    }  
	fout<<resn;  
    for(j=1;j<=g;j++)  
	{  
        if(ress&1)  
		{  
			fout<<" "<<j;  
		}  
		ress=ress>>1;  
	}  
	fout<<endl;
	fin.close();
	fout.close();
    return 0;  
}