1. 程式人生 > >ALGO-120 演算法訓練 學做菜 (c/c++)

ALGO-120 演算法訓練 學做菜 (c/c++)

 演算法訓練 學做菜  

時間限制:1.0s   記憶體限制:256.0MB

    

問題描述

  濤濤立志要做新好青年,他最近在學做菜。由於技術還很生疏,他只會用雞蛋,西紅柿,雞丁,辣醬這四種原料來做菜,我們給這四種原料標上字母A,B,C,D。
  濤濤現在會做的菜有五種:
  1、 西紅柿炒雞蛋 原料:AABDD
  2、 酸辣雞丁 原料:ABCD
  3、 宮保雞丁 原料:CCD
  4、 水煮西紅柿 原料:BBB
  5、 怪味蛋 原料:AD
  這天早上,開開去早市給濤濤買了一些原料回來。由於事先沒有什麼計劃,濤濤決定,對於現存的原料,每次儘量做選單上靠前(即編號小)的菜。


  現在請你寫一個程式,判斷一下開開和濤濤中午能吃到哪些菜。

輸入格式

  共4個整數a,b,c,d。分別表示開開買的A,B,C,D這4種原料的數量。每種原料不會超過30份。

輸出格式

  輸出5行。其中第i行表示濤濤做的第i種菜的數目。

樣例輸入

3
1
2
4

樣例輸出

1
0
1
0
1

注:現將小的上完了,再進行後面的。最開始看成了挨著挨著來一遍。。。。。

#include <iostream>
using namespace std;

int main(int argc, char *argv[]) { 
	int food[5][4]={{2,1,0,2},{1,1,1,1},{0,0,2,1},{0,3,0,0},{1,0,0,1}};
	int in[4];
	for(int i=0;i<4;i++)
		cin>>in[i];
	int cnt=0,sum=0;
	while(cnt!=5){
		int i;
		for(i=0;i<4;i++)							
			if(in[i]-food[cnt][i]<0)				
				break;		
		if(i>=4){
			for(int i=0;i<4;i++)
				in[i]-=food[cnt][i];
			sum++;		
		}else{
			cout<<sum<<endl;
			sum=0;
			cnt++;
		}			
	}
	return 0;
}