`
antsmall
  • 浏览: 15811 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

poj 1017 packets

 
阅读更多

/*
* poj 1017 packets
* antsmall 10-09-23
*/

#include<iostream>
using namespace std;

int main()
{
int cnt;
int p[7];
while(true) {
   scanf("%d%d%d%d%d%d", &p[1], &p[2], &p[3], &p[4], &p[5], &p[6]);
   if(p[1] == 0 && p[2] == 0 && p[3] == 0 && p[4] == 0 && p[5] == 0 && p[6] == 0)
    break;
   
   cnt = 0;
   if(p[6] > 0)
    cnt += p[6];
   if(p[5] > 0) {
    cnt += p[5];
    p[1] -= p[5]*11;
   }
   if(p[4] > 0) {
    cnt += p[4];
   
    int used2 = 0;
    if(p[2] > 0) {
     used2 = (p[2] < p[4]*5)?p[2]:p[4]*5;
     p[2] -= p[4]*5;
    
    } 
    if(p[1] > 0 && (p[4]*5 - used2 > 0)) {
     p[1] -= (p[4]*5-used2)*4;
    }
   
   }
   if(p[3] > 0) {
    cnt += p[3]/4;
    if(p[3]%4 != 0) {
     ++cnt;
     int used3 = p[3]%4;
     int left = 36 - 9*used3;
     if(p[2] > 0) {
      int can2 = 1;
      if(used3 == 1)
       can2 = 5;
      else if(used3 == 2)
       can2 = 3;
      else if(used3 == 3)
       can2 = 1; 
     
      int old2 = p[2];
      p[2] -= can2;
     
      if(old2 < can2) {
       left -= old2*4;
      } else {
       left -= can2*4;
      }
     }
     if(p[1] > 0 && left > 0) {
      p[1] -= left;
     } 
    } 
   }
   if(p[2] > 0) {
    cnt += p[2]/9;
    if(p[2]%9 != 0) {
     ++cnt;
     if(p[1] > 0) {
      p[1] -= 4*(9-p[2]%9);
     }
    }   
   }
   if(p[1] > 0) {
    cnt += p[1]/36;
    if(p[1] % 36 != 0) 
     ++cnt;
   }
   printf("%d\n", cnt);
}
system("pause");
return 0;
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics