WangBoMaiYu

来源:互联网 发布:淘宝网大童牛仔裤 编辑:程序博客网 时间:2024/05/23 13:02

#include<iostream.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>

#define MAX_FISH_NUM 10

int number=0;
int total=0;

typedef info
{
 int num;
 int price;
}info,*pinfo;

info fish[MAX_FISH_NUM];

int conf[MAX_FISH_NUM+MAX_FISH_NUM];

int fishSerial[MAX_FISH_NUM];
int fishNum[MAX_FISH_NUM];


void construct()
{
  int idi=0;
  int to=MAX_FISH_NUM+MAX_FISH_NUM;
  for(idi=0;idi<MAX_FISH_NUM;idi++)
  {
  fish[idi].num=-1;
  fish[idi].price=-1;
  }
  for(idi=0;idi<to;idi++)
  conf[idi]=-1;
  for(idi=0;idi<MAX_FISH_NUM;idi++)
  {
  fishNum[idi]=0;
  fishSerial[idi]=-1;
  }
}

void destruct()
{
}



void init()
{
 ifstream in("in.txt");
 int idi=0;
 int tick=0;
 in>>total;
 in>>number;
 for(idi=0;idi<number;idi++)
 {
  in>>fish[idi].num;
  in>>fish[idi].price;
 }
 idi=0;
 while(conf[tick]!=0&&conf[tick+1]!=0&&idi<MAX_FISH_NUM)
 {
  in>>conf[tick]>>conf[tick+1];
  idi++;
  tick=2*idi;
 } 
 for(idi=0;idi<number;idi++)
 {
  fishSerial[idi]=fish[idi].num;
 }
 in.close();
}

bool isConf(int t1,int t2)
{
//ignored...
}
 
int curCap=0;
int curKinds=0;

 

int lastMax=0;

int maxKinds=0;

bool isExist(int t)
{
//ignored...
}

 

int g_savedNum[MAX_FISH_NUM];


void print()
{
  cout<<"result is "<<endl;
  for(int i=0;i<number;i++)
  if(g_savedNum[i]>0)
  cout<<" "<<g_savedNum[i];
}

void solve()
{
  int idi=0;
  if(curCap>=total)  
  {

   if(curKinds==maxKinds&&curCap>lastMax)
  {  
      for(idi=0;idi<MAX_FISH_NUM;idi++)

          g_savedNum[idi]=fishNum[idi];

   }

    if(lastMax<curCap)

         lastMax=curCap;

    return;
  }
  for(idi=0;idi<number;idi++)
  {
   if(!isExist(idi)&&!isConf(idi))
   {
    curKinds++;
   }
  fishNum[idi]++;
  curCap+=fish[idi].price;

   solve();

  fishNum[idi]--;

 curCap-=fish[idi].price;

  if(fishNum[idi]==0)

   curKinds--;
    solve();
  }
}

void goodbye()
{
  cout<<"good bye !"<<endl;
}

int main()
{
 atexit(goodbye);
 cout<<"in my oppinon , the solution should like this :"<<endl;
 cout<<"constructing..."<<endl;
 construct();
 cout<<"initing..."<<endl;
 init();
 cout<<"reading data..."<<endl;
 read();
 cout<<"solving..."<<endl;
 solve();
 cout<<"ok,press any key to continue..."endl;
 getch();
 destruct();
 return 0;
}