Question:http://poj.org/problem?id=1017
问题点:贪心。
1 Memory: 224K Time: 32MS
2 Language: C++ Result: Accepted
3
4 #include <iostream>
5 using namespace std;
6
7 int seq[4]={0,5,3,1};//表示分配完3*3产品剩余3*3产品数对应剩余2*2的空位数
8 int main()
9 {
10 int product[6],packets,twos,ones;
11 bool flag;
12 while(true)
13 {
14 int i;
15 flag=false;
16 for(i=0;i<6;i++)
17 {
18 cin>>product[i];
19 if(product[i]>0) flag=true;
20 }
21 if(!flag) break;
22
23 packets = product[5]+product[4]+product[3]+(product[2]+3)/4;
24 twos = product[3]*5+seq[product[2]%4];
25 if(product[1]>twos)
26 {
27 packets += (product[1]-twos+8)/9;
28 }
29 ones = 36*packets-36*product[5]-25*product[4]-16*product[3]-9*product[2]-4*product[1];
30 if(product[0]>ones)
31 {
32 packets += (product[0]-ones+35)/36;
33 }
34 cout<<packets<<endl;
35 }
36 return 0;
37 }